x-env-type: &env-type WP_ENVIRONMENT_TYPE: staging services: wordpress: environment: *env-type cron: environment: *env-type caddy: image: caddy:2-alpine restart: unless-stopped depends_on: - wordpress ports: - "80:80" - "443:443" # SITE_DOMAIN is safe to pass through normally (no `$` in a domain name). # STAGING_BASIC_AUTH_USER/HASH are NOT passed via compose at all — see # the comment in docker/caddy/Caddyfile.staging for why; deploy.sh # renders them directly into the mounted file below instead. env_file: - .env.staging volumes: - ./docker/caddy/.generated/Caddyfile.staging:/etc/caddy/Caddyfile:ro - wp_core:/var/www/html:ro - wp_uploads:/var/www/html/wp-content/uploads:ro - wp_themes:/var/www/html/wp-content/themes:ro - ./wp-content/plugins/bookstore-core:/var/www/html/wp-content/plugins/bookstore-core:ro - caddy_data:/data - caddy_config:/config mailhog: image: mailhog/mailhog:v1.0.1 restart: unless-stopped ports: - "8025:8025" volumes: caddy_data: caddy_config: