package main import ( "context" "fmt" "net/http/httptest" "os" "os/signal" "strings" "syscall" "github.com/google/go-containerregistry/pkg/registry" ) func main() { _, cancel := context.WithCancel(context.Background()) defer cancel() // Setup a local registry and have tests push to that. srv := httptest.NewServer(registry.New()) defer srv.Close() parts := strings.Split(srv.URL, ":") url := fmt.Sprintf("localhost:%s", parts[len(parts)-1]) fmt.Println("Registry URL:", url) c := setupSignalHandler() <-c fmt.Println("shutting down the registry server") <-c os.Exit(1) } func setupSignalHandler() chan os.Signal { signalChan := make(chan os.Signal, 2) signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM) return signalChan }