From 4c1c5a88b06d75e4e085095fe97ebe7f2455f4fa Mon Sep 17 00:00:00 2001 From: Romain Dreidemy Date: Thu, 12 Oct 2023 19:35:53 +0200 Subject: [PATCH 1/2] feat(create with stack): handle image selection type --- .../services/create_by_file/create_stack.go | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/api/src/services/create_by_file/create_stack.go b/api/src/services/create_by_file/create_stack.go index 9040c4c8..1e4a500b 100644 --- a/api/src/services/create_by_file/create_stack.go +++ b/api/src/services/create_by_file/create_stack.go @@ -43,19 +43,39 @@ func createServices(composeServices map[string]models.DockerComposeService, stac index := 0 for key, composeService := range composeServices { - image := strings.Split(composeService.Image, ":") + imageSelectionType := "remote" - services = append(services, models.Service{ + newService := models.Service{ StackID: stackId, Name: key, ContainerName: composeService.ContainerName, - DockerImage: image[0], - DockerTag: image[1], EnvFile: composeService.EnvFile, Entrypoint: composeService.Entrypoint, PositionY: 10, PositionX: float32(250*(index) + 10), - }) + } + + if composeService.Image != "" { + image := strings.Split(composeService.Image, ":") + tag := "latest" + + if len(image) > 1 { + tag = image[1] + } + + newService.DockerImage = image[0] + newService.DockerTag = tag + } + + if composeService.Build != (models.DockerComposeServiceBuild{}) { + newService.Context = composeService.Build.Context + newService.Dockerfile = composeService.Build.Dockerfile + imageSelectionType = "local" + } + + newService.ImageSelectionType = imageSelectionType + + services = append(services, newService) index += 1 } From 167aee18bdebf01958395f411f110db02d61caef Mon Sep 17 00:00:00 2001 From: Romain Dreidemy Date: Thu, 12 Oct 2023 19:40:51 +0200 Subject: [PATCH 2/2] feat(duplication): handle image selection type --- api/src/services/duplication/duplication.go | 25 +++++++++++---------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/api/src/services/duplication/duplication.go b/api/src/services/duplication/duplication.go index 1d1044a2..da474755 100644 --- a/api/src/services/duplication/duplication.go +++ b/api/src/services/duplication/duplication.go @@ -93,18 +93,19 @@ func DuplicateStack(stack models.Stack) models.Stack { func duplicateService(service models.Service, stackId string) models.Service { return models.Service{ - StackID: stackId, - Name: service.Name, - ContainerName: service.ContainerName, - Description: service.Description, - DockerImage: service.DockerImage, - DockerTag: service.DockerTag, - EnvFile: service.EnvFile, - Entrypoint: service.Entrypoint, - Context: service.Context, - Dockerfile: service.Dockerfile, - PositionX: service.PositionX, - PositionY: service.PositionY, + StackID: stackId, + Name: service.Name, + ContainerName: service.ContainerName, + ImageSelectionType: service.ImageSelectionType, + Description: service.Description, + DockerImage: service.DockerImage, + DockerTag: service.DockerTag, + EnvFile: service.EnvFile, + Entrypoint: service.Entrypoint, + Context: service.Context, + Dockerfile: service.Dockerfile, + PositionX: service.PositionX, + PositionY: service.PositionY, } }