update the docker files for almost all apps

This commit is contained in:
2025-02-28 18:06:47 +01:00
parent c976fea1c3
commit 0f08168947
8 changed files with 140 additions and 115 deletions

View File

@@ -1,39 +1,55 @@
### Database (./apps/database/docker-compose.yml)
# - [ ] Create a MariaDB service
# - [ ] Configure volumes for persistent storage of database data
# - [ ] Set up environment variables using the new structure (../../env/${ENVIRONMENT:-development}/database.env)
# - [ ] Configure networking to allow connections from the backend service
# - [ ] Set up regular backup jobs for the database
# - [ ] Configure appropriate resource limits and restart policies
secrets:
mariadb_root:
file: ${ROOT_DIR:-../..}/env/secrets.env
services:
database:
profiles: ["all", "mariadb", "backend", "app"]
secrets:
- mariadb_root
profiles: ["all", "database", "backend", "app"]
image: mariadb:latest
container_name: ${INFRASTRUCTURE_LABEL:-default}-mariadb-${ENVIRONMENT:-development}
command: --bind-address=0.0.0.0
env_file:
- ../../env/.env.all
- ../../env/${ENVIRONMENT:-development}/.env.backend
- ../../env/${ENVIRONMENT:-development}/.env.proxy
environment:
- MARIADB_USER=${MARIADB_USER}
- MARIADB_DATABASE=${MARIADB_DATABASE}
- MARIADB_PASSWORD=${MARIADB_PASSWORD}
- MARIADB_ROOT_PASSWORD=root-mindboost
- ../../env/${ENVIRONMENT:-development}/.env.database
volumes:
- ../../volumes/database/mariadb:/var/lib/mysql
- backend_mariadb_data:/var/lib/mysql
- ./healthcheck.sh:/usr/local/bin/healthcheck.sh
networks:
- backend
- database
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
test: ["CMD", "bash", "/usr/local/bin/healthcheck.sh"]
interval: 1s
retries: 3
adminer:
profiles: ["all", "mariadb", "backend", "app"]
profiles: ["all", "database", "backend", "adminer", "app"]
image: adminer
container_name: ${INFRASTRUCTURE_LABEL:-default}-adminer-${ENVIRONMENT:-development}
restart: always
ports:
- 8082:8080
- ${ADMINER_PORT:-0}:8080
networks:
- backend
- database
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.entrypoints=websecure"
- "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.rule=Host(`${ADMINER_DOMAIN}`)"
- "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.tls=true"
- "traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.tls.certresolver=http_resolver"
- 'traefik.http.routers.${INFRASTRUCTURE_LABEL:-default}_adminer.service=adminer'
- "traefik.http.adminer.cloud.loadbalancer.server.port=8080"
- "traefik.docker.network=${TRAEFIK_NETWORK:-default}"
# TODO: ADMINER IS NOT PREPARED FOR TRAEFIK
networks:
backend:
name: ${INFRASTRUCTURE_LABEL:-default}-backend-${ENVIRONMENT:-development}
database:
name: ${INFRASTRUCTURE_LABEL:-default}-database-${ENVIRONMENT:-development}
volumes:
backend_mariadb_data:
driver: local
name: ${INFRASTRUCTURE_LABEL:-default}_mariadb_${ENVIRONMENT:-development}