fix(libstack): resolve env vars correctly in Compose BE-11420 (#166)

pull/12408/head
andres-portainer 2024-11-26 18:09:12 -03:00 committed by GitHub
parent 13143bc7ea
commit 145ffeea40
1 changed files with 11 additions and 12 deletions

View File

@ -103,21 +103,20 @@ func withComposeService(
return fmt.Errorf("failed to load the compose file: %w", err) return fmt.Errorf("failed to load the compose file: %w", err)
} }
if options.EnvFilePath != "" { // Work around compose path handling
// Work around compose path handling for i, service := range project.Services {
for i, service := range project.Services { for j, envFile := range service.EnvFiles {
for j, envFile := range service.EnvFiles { if !filepath.IsAbs(envFile.Path) {
if !filepath.IsAbs(envFile.Path) { project.Services[i].EnvFiles[j].Path = filepath.Join(project.WorkingDir, envFile.Path)
project.Services[i].EnvFiles[j].Path = filepath.Join(project.WorkingDir, envFile.Path)
}
} }
} }
}
if p, err := project.WithServicesEnvironmentResolved(true); err == nil { // Set the services environment variables
project = p if p, err := project.WithServicesEnvironmentResolved(true); err == nil {
} else { project = p
return fmt.Errorf("failed to resolve services environment: %w", err) } else {
} return fmt.Errorf("failed to resolve services environment: %w", err)
} }
return composeFn(composeService, project) return composeFn(composeService, project)