From 85c5176c8551e32f413736ef4667cf2a0b8b9f8b Mon Sep 17 00:00:00 2001 From: Rui Lopes Date: Thu, 3 Sep 2026 07:33:03 +0000 Subject: [PATCH] use the oci-hosted repository --- Vagrantfile | 1 + provision/use-oci-repository.sh | 115 ++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 provision/use-oci-repository.sh diff --git a/Vagrantfile b/Vagrantfile index d073a52..428ead8 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -27,6 +27,7 @@ Vagrant.configure(2) do |config| config.vm.provision :shell, path: 'provision/provision-base.sh' config.vm.provision :shell, path: 'provision/provision-docker.sh' config.vm.provision :shell, path: 'provision/provision-nexus.sh' + config.vm.provision :shell, path: 'provision/use-oci-repository.sh' config.vm.provision :shell, path: 'provision/use-docker-repository.sh' config.vm.provision :shell, path: 'provision/use-raw-repository.sh' config.vm.provision :shell, path: 'provision/use-apt-repository.sh' diff --git a/provision/use-oci-repository.sh b/provision/use-oci-repository.sh new file mode 100644 index 0000000..0062bfd --- /dev/null +++ b/provision/use-oci-repository.sh @@ -0,0 +1,115 @@ +#!/bin/bash +set -euxo pipefail + +nexus_domain="$(hostname --fqdn)" +registry_domain="$nexus_domain" +registry_username='alice.doe' +registry_password='password' +oci_hosted_repository_name='oci-hosted' +oci_hosted_repository_host="$registry_domain/$oci_hosted_repository_name" +oci_hosted_repository_api_url="https://$registry_domain/v2/$oci_hosted_repository_name" + +# login into the registry. +echo "logging in the registry $registry_domain..." +docker login "$registry_domain" --username "$registry_username" --password-stdin <.+) +go_version='1.27.1' + +cat >main.go <<'EOF' +package main + +import ( + "fmt" + "flag" + "log" + "net/http" +) + +func main() { + log.SetFlags(0) + + var listenAddress = flag.String("listen", ":8000", "Listen address.") + + flag.Parse() + + if flag.NArg() != 0 { + flag.Usage() + log.Fatalf("\nERROR You MUST NOT pass any positional arguments") + } + + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/plain") + fmt.Printf("%s %s%s\n", r.Method, r.Host, r.URL) + fmt.Fprintf(w, "%s %s%s\n", r.Method, r.Host, r.URL) + }) + + fmt.Printf("Listening at http://%s\n", *listenAddress) + + err := http.ListenAndServe(*listenAddress, nil) + if err != nil { + log.Fatalf("Failed to ListenAndServe: %v", err) + } +} +EOF +cat >go.mod <Dockerfile <