github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/service/dockerizier/dockerfile_yml.go (about) 1 package dockerizier 2 3 import ( 4 "gopkg.in/yaml.v2" 5 6 "github.com/johnnyeven/libtools/conf" 7 "github.com/johnnyeven/libtools/docker" 8 ) 9 10 var ( 11 Image = "${PROFZONE_DOCKER_REGISTRY}/${PROJECT_GROUP}/${PROJECT_NAME}:${PROJECT_VERSION}" 12 FromImage = "${PROFZONE_DOCKER_REGISTRY}/profzone/golang:runtime" 13 ) 14 15 func toDockerFileYML(envVars conf.EnvVars, serviceName string) string { 16 d := &docker.Dockerfile{ 17 From: FromImage, 18 Image: Image, 19 } 20 21 d = d.AddEnv("GOENV", "DEV") 22 23 for key, envVar := range envVars { 24 strValue := envVar.GetValue(false) 25 if strValue == "./swagger.json" { 26 d = d.AddContent(strValue, "./") 27 } 28 if envVar.FallbackValue != nil { 29 d = d.AddEnv(key, envVar.GetFallbackValue(false)) 30 } 31 } 32 33 d = d.WithWorkDir("/go/bin") 34 d = d.WithCmd("./"+serviceName, "-c=false") 35 d = d.WithExpose("80") 36 37 d = d.AddContent("./config", "./config") 38 d = d.AddContent("./"+serviceName, "./") 39 d = d.AddContent("./profzone.yml", "./") 40 41 bytes, _ := yaml.Marshal(d) 42 return string(bytes) 43 }