← Back
Your Stack
App: Drupal latest
→
DB: MySQL latest
→
Proxy: Traefik latest
Production-ready docker-compose.yml for your stack. Copy it, customize variables in .env, and deploy.
version: '3.8'
services:
drupal:
image: drupal:latest
ports:
- "80:80"
depends_on:
- mysql
environment:
DRUPAL_DB_HOST: ${APP_DB_HOST:-mysql}
DRUPAL_DB_USER: ${APP_DB_USER:-app_user}
DRUPAL_DB_PASSWORD: ${APP_DB_PASSWORD:-change_me_app_password}
DRUPAL_DB_NAME: ${APP_DB_NAME:-drupal_db}
restart: always
mysql:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-change_me_root_password}
MYSQL_USER: ${APP_DB_USER:-app_user}
MYSQL_PASSWORD: ${APP_DB_PASSWORD:-change_me_app_password}
MYSQL_DATABASE: ${APP_DB_NAME:-drupal_db}
volumes:
- mysql_data:/var/lib/mysql
restart: always
traefik:
image: traefik:latest
ports:
- "80:80"
- "443:443"
depends_on:
- drupal
command:
- --providers.docker=true
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: always
volumes:
mysql_data: Customize APP_DB_* and DB_* variables in your .env file.