From c31926db994f1f82e67add6dd6fa4fea403426a2 Mon Sep 17 00:00:00 2001 From: William Date: Thu, 7 Nov 2024 09:28:30 +0100 Subject: [PATCH] feat: Add docker registry --- registry/.env.example | 1 + registry/.gitignore | 2 ++ registry/README.md | 9 +++++++++ registry/docker-compose.yml | 28 ++++++++++++++++++++++++++++ traefik/docker-compose.yml | 2 -- 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 registry/.env.example create mode 100644 registry/.gitignore create mode 100644 registry/README.md create mode 100644 registry/docker-compose.yml diff --git a/registry/.env.example b/registry/.env.example new file mode 100644 index 0000000..e015a36 --- /dev/null +++ b/registry/.env.example @@ -0,0 +1 @@ +REGISTRY_HOST=registy.example.org diff --git a/registry/.gitignore b/registry/.gitignore new file mode 100644 index 0000000..475855f --- /dev/null +++ b/registry/.gitignore @@ -0,0 +1,2 @@ +.env +registry/ \ No newline at end of file diff --git a/registry/README.md b/registry/README.md new file mode 100644 index 0000000..e524979 --- /dev/null +++ b/registry/README.md @@ -0,0 +1,9 @@ +# About Registy + +# How to setup + +```bash +mkdir -p registry/data +docker run --rm -it httpd htpasswd -Bbn test test > ./registry/registry.password +docker compose up -d +``` diff --git a/registry/docker-compose.yml b/registry/docker-compose.yml new file mode 100644 index 0000000..a7ae2cf --- /dev/null +++ b/registry/docker-compose.yml @@ -0,0 +1,28 @@ +registry: + restart: always + image: registry:latest + environment: + REGISTRY_AUTH: htpasswd + REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm + REGISTRY_AUTH_HTPASSWD_PATH: /auth/registry.password + REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data + volumes: + # Mount the password file + - ./registry/registry.password:/auth/registry.password + # Mount the data directory + - ./registry/data:/data + labels: + - "traefik.enable=true" + + - "traefik.http.services.registry.loadbalancer.server.port=5000" + + - "traefik.http.routers.plausible.entrypoints=web" + - "traefik.http.routers.plausible.middlewares=https-redirect@docker" + - "traefik.http.routers.registry.rule=Host(`${REGISTRY_HOST}`)" + + - "traefik.http.routers.registry-https.entrypoints=websecure" + - "traefik.http.routers.registry-https.tls=true" + - "traefik.http.routers.registry-https.tls.certresolver=letsencrypt" + - "traefik.http.routers.registry-https.rule=Host(`${REGISTRY_HOST}`)" + networks: + - web diff --git a/traefik/docker-compose.yml b/traefik/docker-compose.yml index 313906a..d47cd27 100644 --- a/traefik/docker-compose.yml +++ b/traefik/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.3" - networks: web: external: true