diff --git a/deployers/swarm.go b/deployers/swarm.go index 577aebf..6d0b66e 100644 --- a/deployers/swarm.go +++ b/deployers/swarm.go @@ -99,8 +99,8 @@ func (sd *SwarmDeployer) Build() error { log.Info().Msg("building swarm archive for deployment...") filesToArchive := []string{} - if imageName := sd.project.ImageName; imageName != "" { - tarFile, err := sd.dcli.Save(imageName, sd.project.Dir) + for idx := range sd.project.ImageNames { + tarFile, err := sd.dcli.Save(sd.project.ImageNames[idx], sd.project.Dir) if err != nil { sd.setDone(err) return err @@ -113,7 +113,7 @@ func (sd *SwarmDeployer) Build() error { return err } - log.Info().Str("image", imageName).Msg("image added to archive") + log.Info().Str("image", sd.project.ImageNames[idx]).Msg("image added to archive") } if envFilePath := sd.project.Deps.EnvFile; envFilePath != "" { @@ -162,8 +162,8 @@ func (sd *SwarmDeployer) Deploy() error { log.Info().Str("archive", sd.archivePath).Msg("deploying archive to swarm...") - if sd.project.ImageName != "" { - if _, err := sd.conn.Execute("docker image load -i " + sd.project.ImageName + ".tar"); err != nil { + for idx := range sd.project.ImageNames { + if _, err := sd.conn.Execute("docker image load -i " + sd.project.ImageNames[idx] + ".tar"); err != nil { return err } } diff --git a/models/project.go b/models/project.go index 949f19a..86a4b57 100644 --- a/models/project.go +++ b/models/project.go @@ -55,10 +55,10 @@ func getFileInfo(baseDir, filePath string) (string, fs.FileInfo, error) { // Project handles the details and file informations of your project. type Project struct { - Name string `json:"name"` - Dir string - ImageName string `json:"image"` - Deps struct { + Name string `json:"name"` + Dir string + ImageNames []string `json:"images"` + Deps struct { EnvFile string `json:"env"` EnvFileInfo fs.FileInfo