@@ -87,8 +87,7 @@ func DockerComposeService(config config.Config) ComposeService {
8787}
8888
8989func WriteDockerCompose (configs []config.Config , dir string , bakeEnv bool ) error {
90- //TODO: env config should be a merge of all env across all configs.
91- if err := WriteEnvConfig (configs [0 ], dir ); err != nil {
90+ if err := WriteEnvConfig (configs , dir ); err != nil {
9291 return err
9392 }
9493 pupsArgs := "--skip-tags=precompile,migrate,db"
@@ -141,22 +140,29 @@ func WriteDockerfile(config config.Config, dir string, pupsArgs string, bakeEnv
141140 return nil
142141}
143142
144- func WriteEnvConfig (config config.Config , dir string ) error {
143+ func WriteEnvConfig (configs [] config.Config , dir string ) error {
145144 file := strings .TrimRight (dir , "/" ) + "/.envrc"
146- if err := os .WriteFile (file , []byte (ExportEnv (config )), 0660 ); err != nil {
145+ if err := os .WriteFile (file , []byte (ExportEnv (configs )), 0660 ); err != nil {
147146 return errors .New ("error writing export env " + file )
148147 }
149148 return nil
150149}
151150
152- func ExportEnv (config config.Config ) string {
151+ func ExportEnv (configs [] config.Config ) string {
153152 builder := []string {}
154- for k , v := range config .Env {
155- val := strings .ReplaceAll (v , "\\ " , "\\ \\ " )
156- val = strings .ReplaceAll (val , "\" " , "\\ \" " )
157- builder = append (builder , "export " + k + "=\" " + val + "\" " )
153+ // prioritize the first configs for env
154+ slices .Reverse (configs )
155+ for _ , config := range configs {
156+ // Sort env within a config
157+ configEnv := []string {}
158+ for k , v := range config .Env {
159+ val := strings .ReplaceAll (v , "\\ " , "\\ \\ " )
160+ val = strings .ReplaceAll (val , "\" " , "\\ \" " )
161+ configEnv = append (configEnv , "export " + k + "=\" " + val + "\" " )
162+ }
163+ slices .Sort (configEnv )
164+ builder = append (builder , strings .Join (configEnv , "\n " ))
158165 }
159- slices .Sort (builder )
160166 return strings .Join (builder , "\n " )
161167}
162168
0 commit comments