- playbook-diet.yml и files/diet: образ через app_image, uid=gid=1111, каталоги config/data/cache, backup-targets со строкой data/ - блок сайта в Caddy разделён: /api/* идёт мимо Authelia под собственную аутентификацию, клиентские Remote-* срезаются на уровне сайта - правило Authelia one_factor без subject: пользователи шире группы admins
29 lines
1005 B
YAML
29 lines
1005 B
YAML
# Образ собирается локально и доставляется на сервер ролью app_image
|
|
# (см. playbook-diet.yml): тег — случайный BUILD_ID каждого прогона,
|
|
# в реестре образа нет, поэтому pull_policy: never.
|
|
#
|
|
# В образе нет оболочки (distroless): зайти внутрь работающего контейнера
|
|
# нечем, разбор идёт по журналу и GET /healthz.
|
|
|
|
services:
|
|
|
|
diet_app:
|
|
image: "{{ app_name }}:{{ app_image_tag }}"
|
|
container_name: diet_app
|
|
restart: unless-stopped
|
|
pull_policy: never
|
|
user: "{{ owner_create_result.uid }}:{{ owner_create_result.group }}"
|
|
networks:
|
|
- "web_proxy_network"
|
|
volumes:
|
|
- "{{ config_dir }}:/config:ro"
|
|
- "{{ data_dir }}:/var/lib/diet"
|
|
- "{{ cache_dir }}:/var/cache/diet"
|
|
command:
|
|
- "--config"
|
|
- "/config/config.toml"
|
|
|
|
networks:
|
|
web_proxy_network:
|
|
external: true
|