From b623a62f7f312fdedd52ac4e999d67d2081cfd49 Mon Sep 17 00:00:00 2001 From: Pierre Le Fevre Date: Fri, 21 Nov 2025 21:40:32 +0100 Subject: [PATCH] add caddy to example docker compose --- caddy/Caddyfile | 11 +++++++++++ docker-compose.yml | 33 +++++++++++++++++++++++---------- 2 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 caddy/Caddyfile diff --git a/caddy/Caddyfile b/caddy/Caddyfile new file mode 100644 index 0000000..b9266e7 --- /dev/null +++ b/caddy/Caddyfile @@ -0,0 +1,11 @@ +# Replace 'your-registry.example.com' with your real domain +# Caddy will automatically obtain TLS certificates for this domain via Let's Encrypt +# and reverse-proxy traffic to the `grain` service on port 8888 (same Docker network) + +your-registry.example.com { + reverse_proxy grain:8888 + log { + output file /var/log/caddy/grain_access.log + format single_field common_log + } +} diff --git a/docker-compose.yml b/docker-compose.yml index 7362080..0099bb1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,22 +6,35 @@ services: container_name: grain-registry ports: - "8888:8888" - volumes: - - ./data:/data - - grain-blobs:/data/blobs - - grain-manifests:/data/manifests - - grain-uploads:/data/uploads + restart: unless-stopped environment: - RUST_LOG=info - restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8888/v2/"] interval: 30s timeout: 3s retries: 3 start_period: 5s + volumes: + # The application writes blobs/manifests/uploads under its working dir at /app/tmp + - /var/lib/grain/tmp:/app/tmp + # Bind the users file into the container path the image expects + - /var/lib/grain/users.json:/data/users.json:ro -volumes: - grain-blobs: - grain-manifests: - grain-uploads: + caddy: + image: caddy:2 + container_name: grain-caddy + ports: + - "80:80" + - "443:443" + restart: unless-stopped + depends_on: + - grain + volumes: + # Caddyfile: replace the placeholder domain with your actual domain + - /var/lib/grain/caddy/Caddyfile:/etc/caddy/Caddyfile:ro + # Persistent storage for Caddy (TLS certs and config) + - /var/lib/grain/caddy/data:/data + - /var/lib/grain/caddy/config:/config + # Optional: persist Caddy logs on the host + - /var/lib/grain/caddy/logs:/var/log/caddy -- 2.51.2