servers/services/registry/stack.yml
2022-08-09 20:00:05 +02:00

70 lines
2.0 KiB
YAML

version: "{{ compose_version }}"
services:
redis:
image: redis:latest
deploy:
resources:
limits:
memory: 256M
registry:
image: registry:2
secrets:
- source: htpasswd_{{ registry_htpasswd.stat.checksum }}
target: /etc/docker/registry/htpasswd
configs:
- source: registry_{{ registry_config.checksum }}
target: /etc/docker/registry/config.yml
environment:
- REGISTRY_STORAGE_DELETE_ENABLED=true
deploy:
placement:
constraints:
- node.role == manager
networks: ['default']
ui:
image: joxit/docker-registry-ui:2.2.1
environment:
- DELETE_IMAGES=true
- REGISTRY_TITLE=Kadet's private registry
- NGINX_PROXY_PASS_URL=http://registry:5000
- SINGLE_REGISTRY=true
depends_on: ['registry']
deploy:
labels:
- traefik.enable=true
- traefik.http.routers.{{ service }}.rule=Host(`{{ service }}.{{ main_domain }}`)
- traefik.http.routers.{{ service }}.tls=true
- traefik.http.routers.{{ service }}.tls.certresolver=lets-encrypt
- traefik.http.services.{{ service }}.loadbalancer.server.port=80
networks: ['{{ ingress_network }}', 'default']
image-cleanup-job:
image: registry:2
command: ["registry", "garbage-collect", "/etc/docker/registry/config.yml", "-m"]
secrets:
- source: htpasswd_{{ registry_htpasswd.stat.checksum }}
target: /etc/docker/registry/htpasswd
configs:
- source: registry_{{ registry_config.checksum }}
target: /etc/docker/registry/config.yml
deploy:
placement:
constraints:
- node.role == manager
labels:
- "swarm.cronjob.enable=true"
- "swarm.cronjob.schedule=0 0 0 1 * *"
restart_policy:
condition: none
configs:
registry_{{ registry_config.checksum }}:
file: ./config/config.yml
secrets:
htpasswd_{{ registry_htpasswd.stat.checksum }}:
file: ./config/htpasswd