74 lines
1.6 KiB
YAML
74 lines
1.6 KiB
YAML
---
|
|
version: "3.8"
|
|
|
|
services:
|
|
app:
|
|
image: foodcoops/foodsoft:${FOODSOFT_VERSION}
|
|
networks:
|
|
- internal
|
|
- proxy
|
|
deploy:
|
|
update_config:
|
|
failure_action: rollback
|
|
order: start-first
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.foodsoft.rule=Host(`${DOMAIN}`)"
|
|
- "traefik.http.routers.foodsoft.entrypoints=web-secure"
|
|
- "traefik.http.services.foodsoft.loadbalancer.server.port=3000"
|
|
- "traefik.http.routers.foodsoft.tls.certresolver=production"
|
|
|
|
app-cron:
|
|
image: foodcoops/foodsoft:${FOODSOFT_VERSION}
|
|
command: ./proc-start cron
|
|
networks:
|
|
- internal
|
|
|
|
app-worker:
|
|
image: foodcoops/foodsoft:${FOODSOFT_VERSION}
|
|
command: ./proc-start worker
|
|
networks:
|
|
- internal
|
|
|
|
database:
|
|
image: "mariadb:10.5"
|
|
command: |
|
|
mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
|
|
environment:
|
|
- MYSQL_DATABASE=foodsoft
|
|
- MYSQL_USER=foodsoft
|
|
- MYSQL_PASSWORD_FILE=/run/secrets/db_passwd
|
|
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_passwd
|
|
secrets:
|
|
- db_passwd
|
|
- db_root_passwd
|
|
volumes:
|
|
- "database:/var/lib/mysql"
|
|
networks:
|
|
- internal
|
|
|
|
redis:
|
|
image: redis:6
|
|
|
|
networks:
|
|
internal:
|
|
proxy:
|
|
external: true
|
|
|
|
volumes:
|
|
database:
|
|
|
|
configs:
|
|
app_config:
|
|
name: ${APP_CONFIG_VERSION}
|
|
file: app_config.yml.tmpl
|
|
template_driver: golang
|
|
|
|
secrets:
|
|
db_passwd:
|
|
name: ${DB_PASSWD_VERSION}
|
|
external: true
|
|
db_root_passwd:
|
|
name: ${DB_ROOT_PASSWD_VERSION}
|
|
external: true
|