59 lines
1.9 KiB
YAML
59 lines
1.9 KiB
YAML
# /opt/stacks/mariadb/docker-compose.yml
|
|
|
|
services:
|
|
|
|
# ── Servei MariaDB ───────────────────────
|
|
mariadb:
|
|
container_name: mariadb
|
|
image: mariadb:11.4 # Pinnat a LTS estable
|
|
restart: unless-stopped
|
|
environment:
|
|
TZ: Europe/Madrid
|
|
MARIADB_ROOT_PASSWORD: '${MARIADB_ROOT_PASSWORD}'
|
|
MARIADB_DATABASE: '${MARIADB_DATABASE}'
|
|
MARIADB_USER: '${MARIADB_USER}'
|
|
MARIADB_PASSWORD: '${MARIADB_PASSWORD}'
|
|
MARIADB_CHARACTER_SET_SERVER: utf8mb4
|
|
MARIADB_COLLATION_SERVER: utf8mb4_unicode_ci
|
|
ports:
|
|
- "127.0.0.1:3306:3306" # Accés local per eines externes (DBeaver, etc.)
|
|
volumes:
|
|
- mariadb_data:/var/lib/mysql
|
|
- mariadb_init:/docker-entrypoint-initdb.d # Volum named en lloc de bind mount
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 10s
|
|
timeout: 5s # Afegit: timeout explícit
|
|
retries: 5
|
|
start_period: 60s # Afegit: marge per a scripts d'inicialització
|
|
networks:
|
|
- db_net
|
|
|
|
# ── Adminer: UI web per gestionar la BD ──
|
|
adminer:
|
|
container_name: adminer
|
|
image: adminer:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:8090:8080" # UI web (només local → via Nginx)
|
|
environment:
|
|
TZ: Europe/Madrid
|
|
ADMINER_DEFAULT_SERVER: mariadb # Pre-omple el camp servidor a la UI
|
|
ADMINER_DESIGN: pepa-linha # Tema visual més modern (opcional)
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
networks:
|
|
- db_net
|
|
- shared_net
|
|
|
|
volumes:
|
|
mariadb_data:
|
|
mariadb_init: # Posa els teus scripts SQL aquí
|
|
|
|
networks:
|
|
db_net:
|
|
driver: bridge
|
|
shared_net:
|
|
external: true
|
|
name: shared_net |