88 "os"
99 "os/exec"
1010 "path/filepath"
11+ "sort"
1112 "sync"
1213 "time"
1314
@@ -227,8 +228,15 @@ func (d *Deploy) buildServiceApp(ctx context.Context, app *config.ServiceApp, ev
227228
228229 // Add secrets if needed.
229230 if len (secretsMap ) > 0 {
230- for _ , secret := range secretsMap {
231- cmdArgs = append (cmdArgs , "--secret" , secret )
231+ keys := make ([]string , 0 , len (secretsMap ))
232+ for k := range secretsMap {
233+ keys = append (keys , k )
234+ }
235+
236+ sort .Strings (keys )
237+
238+ for _ , k := range keys {
239+ cmdArgs = append (cmdArgs , "--secret" , fmt .Sprintf ("id=%s" , k ))
232240 }
233241 }
234242
@@ -242,10 +250,13 @@ func (d *Deploy) buildServiceApp(ctx context.Context, app *config.ServiceApp, ev
242250 cmdArgs = append ([]string {"build" }, cmdArgs ... )
243251 }
244252
253+ dockerEnv := []string {"DOCKER_BUILDKIT=1" }
254+ dockerEnv = append (dockerEnv , util .FlattenEnvMap (secretsMap )... )
255+
245256 cmd , err := command .New (
246257 exec .Command ("docker" , cmdArgs ... ),
247258 command .WithDir (dockercontext ),
248- command .WithEnv ([] string { "DOCKER_BUILDKIT=1" } ),
259+ command .WithEnv (dockerEnv ),
249260 )
250261 if err != nil {
251262 return merry .Errorf ("error preparing build command for %s app: %s: %w" , app .Type (), app .Name (), err )
0 commit comments