From 8590a985040d167dcd1ac382686f8dd4f8c56a5c Mon Sep 17 00:00:00 2001 From: Tomas Kral Date: Mon, 29 Aug 2016 19:58:32 +0200 Subject: [PATCH] docker-compose - fix Command and add Entrypoint support --- pkg/kobject/kobject.go | 1 - pkg/loader/compose/compose.go | 3 +++ pkg/transformer/kubernetes/k8sutils.go | 7 ++----- pkg/transformer/utils.go | 10 ---------- 4 files changed, 5 insertions(+), 16 deletions(-) diff --git a/pkg/kobject/kobject.go b/pkg/kobject/kobject.go index f69159d5..763796a2 100644 --- a/pkg/kobject/kobject.go +++ b/pkg/kobject/kobject.go @@ -35,7 +35,6 @@ var unsupportedKey = map[string]int{ "DNS": 0, "DNSSearch": 0, "DomainName": 0, - "Entrypoint": 0, "EnvFile": 0, "Expose": 0, "Extends": 0, diff --git a/pkg/loader/compose/compose.go b/pkg/loader/compose/compose.go index 8e5484d6..f5b55be0 100644 --- a/pkg/loader/compose/compose.go +++ b/pkg/loader/compose/compose.go @@ -119,6 +119,7 @@ func (c *Compose) LoadFile(file string) kobject.KomposeObject { // load compose file into composeObject composeObject := project.NewProject(&context.Context, nil, nil) + err := composeObject.Parse() if err != nil { logrus.Fatalf("Failed to load compose file: %v", err) @@ -150,6 +151,8 @@ func (c *Compose) LoadFile(file string) kobject.KomposeObject { serviceConfig := kobject.ServiceConfig{} serviceConfig.Image = composeServiceConfig.Image serviceConfig.ContainerName = composeServiceConfig.ContainerName + serviceConfig.Entrypoint = composeServiceConfig.Entrypoint + serviceConfig.Command = composeServiceConfig.Command // load environment variables envs := loadEnvVars(composeServiceConfig.Environment.ToMap()) diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index 745ab311..7440a57c 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -243,9 +243,6 @@ func UpdateKubernetesObjects(name string, service kobject.ServiceConfig, objects // Configure the environment variables. envs := ConfigEnvs(name, service) - // Configure the container command. - cmds := transformer.ConfigCommands(service) - // Configure the container volumes. volumesMount, volumes := ConfigVolumes(service) @@ -261,8 +258,8 @@ func UpdateKubernetesObjects(name string, service kobject.ServiceConfig, objects template.Spec.Containers[0].Name = service.ContainerName } template.Spec.Containers[0].Env = envs - template.Spec.Containers[0].Command = cmds - template.Spec.Containers[0].Args = service.Args + template.Spec.Containers[0].Command = service.Entrypoint + template.Spec.Containers[0].Args = service.Command template.Spec.Containers[0].WorkingDir = service.WorkingDir template.Spec.Containers[0].VolumeMounts = volumesMount template.Spec.Volumes = volumes diff --git a/pkg/transformer/utils.go b/pkg/transformer/utils.go index 301b4d3b..ce9d09ec 100644 --- a/pkg/transformer/utils.go +++ b/pkg/transformer/utils.go @@ -41,16 +41,6 @@ func CreateOutFile(out string) *os.File { return f } -// Configure the container commands -func ConfigCommands(service kobject.ServiceConfig) []string { - var cmds []string - for _, cmd := range service.Command { - cmds = append(cmds, cmd) - } - - return cmds -} - // parseVolume parse a given volume, which might be [name:][host:]container[:access_mode] func ParseVolume(volume string) (name, host, container, mode string, err error) { separator := ":"