@@ -296,9 +296,8 @@ func (m *ApoxyCli) BuildEdgeRuntime(
296
296
// PullEdgeRuntime pulls the edge runtime image from dockerhub.
297
297
func (m * ApoxyCli ) PullEdgeRuntime (
298
298
ctx context.Context ,
299
- platform string ,
299
+ p dagger. Platform ,
300
300
) * dagger.Container {
301
- p := dagger .Platform (platform )
302
301
return dag .Container (dagger.ContainerOpts {Platform : p }).
303
302
From ("docker.io/supabase/edge-runtime:v1.62.2" )
304
303
}
@@ -307,20 +306,25 @@ func (m *ApoxyCli) PullEdgeRuntime(
307
306
func (m * ApoxyCli ) BuildAPIServer (
308
307
ctx context.Context ,
309
308
src * dagger.Directory ,
309
+ // +optional
310
+ platform string ,
310
311
) * dagger.Container {
311
- platform := dagger .Platform ("linux/amd64" )
312
- goarch := "amd64"
313
- targetArch := "x86_64"
312
+ if platform == "" {
313
+ platform = runtime .GOOS + "/" + runtime .GOARCH
314
+ }
315
+ p := dagger .Platform (platform )
316
+ goarch := archOf (p )
317
+
314
318
builder := m .BuilderContainer (ctx , src ).
315
319
WithEnvVariable ("GOARCH" , goarch ).
316
320
WithEnvVariable ("GOOS" , "linux" ).
317
321
WithEnvVariable ("CGO_ENABLED" , "1" ).
318
- WithEnvVariable ("CC" , fmt .Sprintf ("zig-wrapper cc --target=%s-linux-musl" , targetArch )).
322
+ WithEnvVariable ("CC" , fmt .Sprintf ("zig-wrapper cc --target=%s-linux-musl" , canonArchFromGoArch ( goarch ) )).
319
323
WithExec ([]string {"go" , "build" , "-o" , "apiserver" , "./cmd/apiserver" })
320
324
321
- runtimeCtr := m .PullEdgeRuntime (ctx , string ( platform ) )
325
+ runtimeCtr := m .PullEdgeRuntime (ctx , p )
322
326
323
- return dag .Container (dagger.ContainerOpts {Platform : platform }).
327
+ return dag .Container (dagger.ContainerOpts {Platform : p }).
324
328
From ("cgr.dev/chainguard/wolfi-base:latest" ).
325
329
WithFile ("/bin/apiserver" , builder .File ("/src/apiserver" )).
326
330
WithFile ("/bin/edge-runtime" , runtimeCtr .File ("/usr/local/bin/edge-runtime" )).
@@ -372,7 +376,7 @@ func (m *ApoxyCli) BuildBackplane(
372
376
WithExec ([]string {"go" , "build" , "-o" , "/src/" + otelOut }).
373
377
WithWorkdir ("/src" )
374
378
375
- runtimeCtr := m .PullEdgeRuntime (ctx , platform )
379
+ runtimeCtr := m .PullEdgeRuntime (ctx , p )
376
380
377
381
return dag .Container (dagger.ContainerOpts {Platform : p }).
378
382
From ("cgr.dev/chainguard/wolfi-base:latest" ).
@@ -434,14 +438,20 @@ func (m *ApoxyCli) PublishImages(
434
438
registryPassword * dagger.Secret ,
435
439
tag string ,
436
440
) error {
437
- aCtr := m .BuildAPIServer (ctx , src )
438
- addr , err := aCtr .
441
+ var apiCtrs []* dagger.Container
442
+ for _ , platform := range []string {"linux/amd64" , "linux/arm64" } {
443
+ apiCtrs = append (apiCtrs , m .BuildAPIServer (ctx , src , platform ))
444
+ }
445
+
446
+ addr , err := dag .Container ().
439
447
WithRegistryAuth (
440
448
"registry-1.docker.io" ,
441
449
"apoxy" ,
442
450
registryPassword ,
443
451
).
444
- Publish (ctx , "docker.io/apoxy/apiserver:" + tag )
452
+ Publish (ctx , "docker.io/apoxy/apiserver:" + tag , dagger.ContainerPublishOpts {
453
+ PlatformVariants : apiCtrs ,
454
+ })
445
455
if err != nil {
446
456
return err
447
457
}
@@ -450,8 +460,7 @@ func (m *ApoxyCli) PublishImages(
450
460
451
461
var bCtrs []* dagger.Container
452
462
for _ , platform := range []string {"linux/amd64" , "linux/arm64" } {
453
- bCtr := m .BuildBackplane (ctx , src , platform )
454
- bCtrs = append (bCtrs , bCtr )
463
+ bCtrs = append (bCtrs , m .BuildBackplane (ctx , src , platform ))
455
464
}
456
465
457
466
addr , err = dag .Container ().
@@ -471,8 +480,7 @@ func (m *ApoxyCli) PublishImages(
471
480
472
481
var tpCtrs []* dagger.Container
473
482
for _ , platform := range []string {"linux/amd64" , "linux/arm64" } {
474
- tpCtr := m .BuildTunnelproxy (ctx , src , platform )
475
- tpCtrs = append (tpCtrs , tpCtr )
483
+ tpCtrs = append (tpCtrs , m .BuildTunnelproxy (ctx , src , platform ))
476
484
}
477
485
478
486
addr , err = dag .Container ().
0 commit comments