servers/services/keylighter/stack.yml
2024-04-07 17:47:19 +02:00

99 lines
3.2 KiB
YAML

version: "{{ compose_version }}"
services:
redis:
image: redis:latest
deploy:
resources:
limits:
memory: 256M
worker:
image: registry.kadet.net/keylighter.kadet.net/php-fpm:{{ keylighter_version }}
command: ['./bin/console', 'messenger:consume', '-vvv']
volumes:
- storage-data:/var/www/var
configs:
- source: dotenv_{{ dotenv_file.checksum }}
target: /var/www/.env.local
site:
image: registry.kadet.net/podlike
command: -logs -ipc=false -pull
networks: ["{{ ingress_network }}", "default"]
deploy:
mode: replicated
replicas: 1
update_config:
parallelism: 1
order: start-first
labels:
- traefik.enable=true
- traefik.http.routers.{{ service }}.rule={{ traefik_routing_rule }}
- traefik.http.routers.{{ service }}.priority=100
- traefik.http.routers.{{ service }}.tls=true
- traefik.http.routers.{{ service }}.tls.certresolver=lets-encrypt-tls
- traefik.http.services.{{ service }}.loadbalancer.server.port=80
restart_policy:
condition: any
delay: 60s
labels:
pod.component.fpm: |
image: registry.kadet.net/keylighter.kadet.net/php-fpm:{{ keylighter_version }}
environment:
- TRUSTED_PROXIES=10.0.0.0/8
volumes:
- {{ service }}-www-data:/var/www
- {{ service }}-storage-data:/var/www/var
pod.component.nginx: |
image: nginx:latest
volumes:
- {{ service }}-www-data:/var/www
- {{ service }}-storage-data:/var/www/var
- {{ service }}-nginx-config:/etc/nginx/templates
pod.copy.fpm: /var/conf/keylighter/.env:/var/www/.env.local
pod.copy.nginx: /var/conf/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
pod.init.components: |
- image: registry.kadet.net/keylighter.kadet.net/php-fpm:{{ keylighter_version }}
entrypoint: ["/bin/sh", "-c"]
command: ["cp -a /var/www /mnt"]
volumes:
- {{ service }}-www-data:/mnt/www
configs:
- source: dotenv_{{ dotenv_file.checksum }}
target: /var/conf/keylighter/.env
- source: nginx_conf_{{ nginx_conf.checksum }}
target: /var/conf/nginx/nginx.conf
secrets:
- source: dockerregistryauth
target: /var/run/secrets/podlike/dockerregistryauth.json
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- nginx-config:/mnt/nginx-config
- www-data:/mnt/www-data
- storage-data:/mnt/storage-data
secrets:
dockerregistryauth:
name: dockerregistryauth
external: true
configs:
dotenv_{{ dotenv_file.checksum }}:
file: ./config/.env
nginx_conf_{{ nginx_conf.checksum }}:
file: ./config/nginx.conf
volumes:
nginx-config:
name: '{{ service }}-{{ "nginx-config.{{.Task.ID}}" }}'
labels:
com.github.rycus86.podlike.volume-ref: "{{ service }}-nginx-config"
www-data:
name: '{{ service }}-{{ "www-data.{{.Task.ID}}" }}'
labels:
com.github.rycus86.podlike.volume-ref: "{{ service }}-www-data"
storage-data:
labels:
com.github.rycus86.podlike.volume-ref: "{{ service }}-storage-data"