From 010c4be6b218ae43e2ef5afc449467b824389ca0 Mon Sep 17 00:00:00 2001 From: Guillaume Tardif <guillaume.tardif@gmail.com> Date: Tue, 12 Jan 2021 15:43:38 +0100 Subject: [PATCH] Support container_name in ACI and add network alias in dns sidecar. (Note container_name is used in several MSFT examples) Signed-off-by: Guillaume Tardif <guillaume.tardif@gmail.com> --- aci/convert/convert.go | 20 +++++++++++++------ .../fixtures/volume-test/docker-compose.yml | 3 ++- tests/composefiles/demo_multi_port.yaml | 3 ++- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/aci/convert/convert.go b/aci/convert/convert.go index a3f72b58f..9dbcee3f9 100644 --- a/aci/convert/convert.go +++ b/aci/convert/convert.go @@ -120,8 +120,8 @@ func ToContainerGroup(ctx context.Context, aciContext store.AciContext, p types. DNSNameLabel: dnsLabelName, } } - if len(ctnrs) > 1 { - dnsSideCar := getDNSSidecar(ctnrs) + if len(project.Services) > 1 { + dnsSideCar := getDNSSidecar(project.Services) ctnrs = append(ctnrs, dnsSideCar) } groupDefinition.ContainerGroupProperties.Containers = &ctnrs @@ -137,10 +137,13 @@ func durationToSeconds(d *types.Duration) *int32 { return &v } -func getDNSSidecar(containers []containerinstance.Container) containerinstance.Container { +func getDNSSidecar(services types.Services) containerinstance.Container { names := []string{"/hosts"} - for _, container := range containers { - names = append(names, *container.Name) + for _, service := range services { + names = append(names, service.Name) + if service.ContainerName != "" { + names = append(names, service.ContainerName) + } } dnsSideCar := containerinstance.Container{ Name: to.StringPtr(ComposeDNSSidecarName), @@ -182,8 +185,13 @@ func (s serviceConfigAciHelper) getAciContainer() (containerinstance.Container, return containerinstance.Container{}, err } + containerName := s.Name + if s.ContainerName != "" { + containerName = s.ContainerName + } + return containerinstance.Container{ - Name: to.StringPtr(s.Name), + Name: to.StringPtr(containerName), ContainerProperties: &containerinstance.ContainerProperties{ Image: to.StringPtr(s.Image), Command: to.StringSlicePtr(s.Command), diff --git a/tests/compose-e2e/fixtures/volume-test/docker-compose.yml b/tests/compose-e2e/fixtures/volume-test/docker-compose.yml index 57ec42fd0..c9959d745 100644 --- a/tests/compose-e2e/fixtures/volume-test/docker-compose.yml +++ b/tests/compose-e2e/fixtures/volume-test/docker-compose.yml @@ -15,4 +15,5 @@ services: - 9090:80 volumes: - staticVol: \ No newline at end of file + staticVol: + name: myVolume \ No newline at end of file diff --git a/tests/composefiles/demo_multi_port.yaml b/tests/composefiles/demo_multi_port.yaml index 2e3414e11..5fff56c71 100644 --- a/tests/composefiles/demo_multi_port.yaml +++ b/tests/composefiles/demo_multi_port.yaml @@ -3,7 +3,8 @@ services: build: aci-demo/db image: gtardif/sentences-db - words: + service1: + container_name: words build: aci-demo/words image: gtardif/sentences-api ports: