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  }