52 lines
1.5 KiB
YAML
52 lines
1.5 KiB
YAML
---
|
|
version: "3.8"
|
|
|
|
services:
|
|
app:
|
|
environment:
|
|
# DATABASE_URL with secret db_password is being set by entrypoint.sh.tmpl
|
|
- MYSQL_HOST=db
|
|
- MYSQL_DATABASE=vaultwarden
|
|
- MYSQL_USER=vaultwarden
|
|
- MYSQL_PASSWORD_FILE=/run/secrets/db_password
|
|
secrets:
|
|
- db_password
|
|
|
|
db:
|
|
image: "mariadb:10.6" # or "mysql"
|
|
environment:
|
|
- MYSQL_DATABASE=vaultwarden
|
|
- MYSQL_USER=vaultwarden
|
|
- MYSQL_PASSWORD_FILE=/run/secrets/db_password
|
|
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password
|
|
- MAX_DB_CONNECTIONS=${MAX_DB_CONNECTIONS:-100}#
|
|
secrets:
|
|
- db_root_password
|
|
- db_password
|
|
volumes:
|
|
- "mariadb:/var/lib/mysql"
|
|
networks:
|
|
- internal
|
|
deploy:
|
|
labels:
|
|
backupbot.backup.pre-hook: 'mysqldump --single-transaction -u root -p"$$(cat /run/secrets/db_root_password)" $${MYSQL_DATABASE} > /var/lib/mysql/backup.sql'
|
|
backupbot.backup.volumes.mariadb.path: "backup.sql"
|
|
backupbot.restore.post-hook: 'mysql -u root -p"$$(cat /run/secrets/db_root_password)" $${MYSQL_DATABASE} < /var/lib/mysql/backup.sql'
|
|
healthcheck:
|
|
test: ["CMD-SHELL", 'mysqladmin -p"$$(cat /run/secrets/db_root_password)" ping']
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 0
|
|
start_period: 1m
|
|
|
|
secrets:
|
|
db_root_password:
|
|
external: true
|
|
name: ${STACK_NAME}_db_root_password_${SECRET_DB_ROOT_PASSWORD_VERSION}
|
|
db_password:
|
|
external: true
|
|
name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION}
|
|
|
|
volumes:
|
|
mariadb:
|