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
|