-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.go
More file actions
68 lines (60 loc) · 1.79 KB
/
main.go
File metadata and controls
68 lines (60 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
"os/exec"
)
const (
registryBinary = "/bin/registry"
registryConfig = "/etc/docker/registry/config.yml"
minioHostEnvVar = "DRYCC_MINIO_SERVICE_HOST"
minioPortEnvVar = "DRYCC_MINIO_SERVICE_PORT"
command = "serve"
)
func main() {
log.Println("INFO: Starting registry...")
mHost := os.Getenv(minioHostEnvVar)
mPort := os.Getenv(minioPortEnvVar)
os.Setenv("REGISTRY_STORAGE", "s3")
os.Setenv("REGISTRY_STORAGE_S3_BACKEND", "minio")
os.Setenv("REGISTRY_STORAGE_S3_REGIONENDPOINT", fmt.Sprintf("http://%s:%s", mHost, mPort))
if accesskey, err := ioutil.ReadFile("/var/run/secrets/drycc/objectstore/creds/accesskey"); err != nil {
log.Fatal(err)
} else {
os.Setenv("REGISTRY_STORAGE_S3_ACCESSKEY", string(accesskey))
}
if secretkey, err := ioutil.ReadFile("/var/run/secrets/drycc/objectstore/creds/secretkey"); err != nil {
log.Fatal(err)
} else {
os.Setenv("REGISTRY_STORAGE_S3_SECRETKEY", string(secretkey))
}
if bucket, err := ioutil.ReadFile("/var/run/secrets/drycc/objectstore/creds/registry-bucket"); err != nil {
log.Fatal(err)
} else {
os.Setenv("REGISTRY_STORAGE_S3_BUCKET", string(bucket))
}
os.Setenv("REGISTRY_STORAGE_S3_REGION", "us-east-1")
// run /bin/create_bucket
cmd := exec.Command("/bin/create_bucket")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
log.Fatal("Error creating the registry bucket: ", err)
}
cmd = exec.Command(registryBinary, command, registryConfig)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
log.Fatal("Error starting the registry: ", err)
}
log.Println("INFO: registry started.")
}
func getenv(name, dfault string) string {
value := os.Getenv(name)
if value == "" {
value = dfault
}
return value
}