Last active
October 21, 2024 16:18
-
-
Save numpde/ac45f963df0f5fb7e4b066693e5d71dc to your computer and use it in GitHub Desktop.
WP/WC: WordPress
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Run as: | |
# TRAEFIK_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' traefik) docker-compose --env-file ./env/nairobi/.env -f ./marketplaces/nairobi/docker-compose.yml up -d | |
services: | |
wordpress: | |
image: wordpress:latest | |
container_name: wordpress_nairobi | |
restart: always | |
environment: | |
WORDPRESS_DB_HOST: "${MYSQL_HOST:?Please set MYSQL_HOST in .env or Docker Compose configuration.}" | |
WORDPRESS_DB_USER: "${MYSQL_USER:?Please set MYSQL_USER in .env or Docker Compose configuration.}" | |
WORDPRESS_DB_PASSWORD: "${MYSQL_PASSWORD:?Please set MYSQL_PASSWORD in .env or Docker Compose configuration.}" | |
WORDPRESS_DB_NAME: "${MYSQL_DATABASE:?Please set MYSQL_DATABASE in .env or Docker Compose configuration.}" | |
WORDPRESS_DOMAIN_0: "${WORDPRESS_DOMAIN_0:?Please set WORDPRESS_DOMAIN_0 in .env or Docker Compose configuration.}" | |
WORDPRESS_DOMAIN_1: "${WORDPRESS_DOMAIN_1:?Please set WORDPRESS_DOMAIN_1 in .env or Docker Compose configuration.}" | |
TRAEFIK_IP: "${TRAEFIK_IP:?Please set TRAEFIK_IP in .env or Docker Compose configuration.}" | |
extra_hosts: | |
- "${WORDPRESS_DOMAIN_0}:${TRAEFIK_IP}" # Shortcut internal requests | |
- "${WORDPRESS_DOMAIN_1}:${TRAEFIK_IP}" # Shortcut internal requests | |
volumes: | |
- ./plugins:/var/www/html/wp-content/plugins | |
- ./themes:/var/www/html/wp-content/themes | |
- ./uploads:/var/www/html/wp-content/uploads | |
- ./wp-config.php:/var/www/html/wp-config.php | |
labels: | |
# Main WordPress Router | |
- "traefik.enable=true" | |
- "traefik.http.routers.wordpress.rule=Host(`${WORDPRESS_DOMAIN_0}`, `${WORDPRESS_DOMAIN_1}`)" | |
- "traefik.http.routers.wordpress.entrypoints=websecure" | |
- "traefik.http.routers.wordpress.tls.certresolver=le" | |
- "traefik.http.services.wordpress.loadbalancer.server.port=80" | |
# API Internal Proxy (applies to both subdomains) | |
- "traefik.http.routers.api-redirect.rule=Host(`api1-${WORDPRESS_DOMAIN_1}`, `api2-${WORDPRESS_DOMAIN_1}`) && PathPrefix(`/wp-json`)" | |
- "traefik.http.routers.api-redirect.entrypoints=websecure" | |
- "traefik.http.routers.api-redirect.tls.certresolver=le" | |
- "traefik.http.middlewares.api-redirect.replacepathregex.regex=^/wp-json/(.*)" | |
- "traefik.http.middlewares.api-redirect.replacepathregex.replacement=/wp-json/$1" | |
- "traefik.http.routers.api-redirect.middlewares=api-redirect" | |
networks: | |
- internal_nairobi | |
- ecommerce | |
networks: | |
ecommerce: | |
external: true | |
driver: bridge | |
internal_nairobi: | |
external: true | |
driver: bridge | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment