Rust implementation of OCI Distribution Spec with granular access control
at main 38 lines 1.2 kB view raw
1services: 2 grain: 3 image: pierrelf/grain:latest 4 container_name: grain-registry 5 ports: 6 - "127.0.0.1:8888:8888" 7 restart: unless-stopped 8 environment: 9 - RUST_LOG=info 10 healthcheck: 11 test: ["CMD", "curl", "-f", "http://localhost:8888/v2/"] 12 interval: 30s 13 timeout: 3s 14 retries: 3 15 start_period: 5s 16 volumes: 17 # The application writes blobs/manifests/uploads under its working dir at /app/tmp 18 - /var/lib/grain/tmp:/app/tmp 19 # Bind the users file into the container path the image expects 20 - /var/lib/grain/users.json:/data/users.json:ro 21 22 caddy: 23 image: caddy:2 24 container_name: grain-caddy 25 ports: 26 - "80:80" 27 - "443:443" 28 restart: unless-stopped 29 depends_on: 30 - grain 31 volumes: 32 # Caddyfile: replace the placeholder domain with your actual domain 33 - /var/lib/grain/caddy/Caddyfile:/etc/caddy/Caddyfile:ro 34 # Persistent storage for Caddy (TLS certs and config) 35 - /var/lib/grain/caddy/data:/data 36 - /var/lib/grain/caddy/config:/config 37 # Optional: persist Caddy logs on the host 38 - /var/lib/grain/caddy/logs:/var/log/caddy