@@ -696,6 +696,14 @@ var localImages = []localImage{
696696 {tag : "ghcr.io/obolnetwork/x402-buyer:latest" , dockerfile : "Dockerfile.x402-buyer" },
697697}
698698
699+ func devPreloadImages () []string {
700+ var images []string
701+ if ref := openclaw .ImageRef (); ref != "" {
702+ images = append (images , ref )
703+ }
704+ return images
705+ }
706+
699707// buildAndImportLocalImages builds Docker images from source and imports them
700708// into the k3d cluster. This ensures images are available even when the GHCR
701709// publish workflow hasn't run. Non-fatal: logs warnings on failure.
@@ -741,6 +749,20 @@ func buildAndImportLocalImages(cfg *config.Config) {
741749 fmt .Printf ("Warning: failed to import %s into k3d: %v\n " , img .tag , err )
742750 }
743751 }
752+
753+ for _ , ref := range devPreloadImages () {
754+ fmt .Printf ("Preloading %s into cluster %s...\n " , ref , clusterName )
755+ pullCmd := exec .Command ("docker" , "pull" , ref )
756+ pullCmd .Stdout = os .Stdout
757+ pullCmd .Stderr = os .Stderr
758+ if err := pullCmd .Run (); err != nil {
759+ fmt .Printf ("Warning: failed to pull %s: %v\n " , ref , err )
760+ continue
761+ }
762+ if err := importImageToCluster (k3dBinary , clusterName , ref ); err != nil {
763+ fmt .Printf ("Warning: failed to import %s into k3d: %v\n " , ref , err )
764+ }
765+ }
744766}
745767
746768func importImageToCluster (k3dBinary , clusterName , tag string ) error {
0 commit comments