version: "3.9" services: db: image: mariadb:11.2 container_name: walter-coiffure-db env_file: .env volumes: - dbdata:/var/lib/mysql - ./waltercoiffure/wc.dump.sql:/docker-entrypoint-initdb.d/init.sql:ro environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} command: "--default-authentication-plugin=mysql_native_password" restart: unless-stopped networks: - internal healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 3 start_period: 30s wordpress: image: wordpress:6.4-php8.2-apache container_name: walter-coiffure-wp depends_on: db: condition: service_healthy env_file: .env environment: - WORDPRESS_DB_HOST=db:3306 - WORDPRESS_DB_USER=${MYSQL_USER} - WORDPRESS_DB_PASSWORD=${MYSQL_PASSWORD} - WORDPRESS_DB_NAME=${MYSQL_DATABASE} - WORDPRESS_TABLE_PREFIX=wor9102_ - WORDPRESS_CONFIG_EXTRA= define('WP_HOME', 'https://${DOMAIN}'); define('WP_SITEURL', 'https://${DOMAIN}'); define('FORCE_SSL_ADMIN', true); if (isset($$_SERVER['HTTP_X_FORWARDED_PROTO']) && $$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $$_SERVER['HTTPS'] = 'on'; } restart: unless-stopped volumes: - ./waltercoiffure/wordpress:/var/www/html:cached - ./waltercoiffure/plugins:/var/www/html/wp-content/plugins:cached - ./waltercoiffure/uploads:/var/www/html/wp-content/uploads:cached - ./waltercoiffure/themes:/var/www/html/wp-content/themes:cached networks: - internal - traefik-net labels: - "traefik.enable=true" - "traefik.docker.network=traefik" # HTTP - "traefik.http.routers.walter-coiffure.rule=Host(`${DOMAIN}`)" - "traefik.http.routers.walter-coiffure.entrypoints=web" - "traefik.http.routers.walter-coiffure.middlewares=redirect-to-https" # HTTPS - "traefik.http.routers.walter-coiffure-secure.rule=Host(`${DOMAIN}`)" - "traefik.http.routers.walter-coiffure-secure.entrypoints=websecure" - "traefik.http.routers.walter-coiffure-secure.tls=true" - "traefik.http.routers.walter-coiffure-secure.tls.certresolver=letsencrypt" # Service - "traefik.http.services.walter-coiffure.loadbalancer.server.port=80" # Middleware pour redirection HTTPS - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true" volumes: dbdata: networks: internal: driver: bridge traefik-net: external: true