Browse Source

Merge pull request #463 from docker/compose_labels_error

Explicit error message saying we don’t support labels in compose file
Guillaume Tardif 5 years ago
parent
commit
abd363d641
2 changed files with 20 additions and 0 deletions
  1. 3 0
      aci/convert/convert.go
  2. 17 0
      aci/convert/convert_test.go

+ 3 - 0
aci/convert/convert.go

@@ -95,6 +95,9 @@ func ToContainerGroup(aciContext store.AciContext, p types.Project) (containerin
 		if err != nil {
 		if err != nil {
 			return containerinstance.ContainerGroup{}, err
 			return containerinstance.ContainerGroup{}, err
 		}
 		}
+		if service.Labels != nil && len(service.Labels) > 0 {
+			return containerinstance.ContainerGroup{}, errors.New("ACI integration does not support labels in compose applications")
+		}
 		if service.Ports != nil {
 		if service.Ports != nil {
 			var containerPorts []containerinstance.ContainerPort
 			var containerPorts []containerinstance.ContainerPort
 			for _, portConfig := range service.Ports {
 			for _, portConfig := range service.Ports {

+ 17 - 0
aci/convert/convert_test.go

@@ -235,6 +235,23 @@ func TestComposeInconsistentMultiContainerRestartPolicy(t *testing.T) {
 	assert.Error(t, err, "ACI integration does not support specifying different restart policies on containers in the same compose application")
 	assert.Error(t, err, "ACI integration does not support specifying different restart policies on containers in the same compose application")
 }
 }
 
 
+func TestLabelsErrorMessage(t *testing.T) {
+	project := types.Project{
+		Services: []types.ServiceConfig{
+			{
+				Name:  "service1",
+				Image: "image1",
+				Labels: map[string]string{
+					"label1": "value1",
+				},
+			},
+		},
+	}
+
+	_, err := ToContainerGroup(convertCtx, project)
+	assert.Error(t, err, "ACI integration does not support labels in compose applications")
+}
+
 func TestComposeSingleContainerGroupToContainerDefaultRestartPolicy(t *testing.T) {
 func TestComposeSingleContainerGroupToContainerDefaultRestartPolicy(t *testing.T) {
 	project := types.Project{
 	project := types.Project{
 		Services: []types.ServiceConfig{
 		Services: []types.ServiceConfig{