version: '3.8' services: traefik: image: traefik:latest container_name: "traefik" command: - "--providers.docker=true" - "--api.dashboard=true" - "--api.insecure=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.letsencrypt.acme.email=learn@akamai.com" - "--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme/acme.json" - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" ports: - "80:80" - "443:443" - "8080:8080" # /dashboard/ volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "../volumes/acme:/etc/traefik/acme" wp: image: wordpress scale: 3 restart: always environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: wordpress volumes: - wp-data:/var/www/html labels: - "traefik.enable=true" # Enable Traefik - "traefik.http.routers.wp.rule=Host(`origin-akashop.akamai-lab.com`)" - "traefik.http.routers.wp.tls=true" - "traefik.http.routers.wp.tls.certresolver=letsencrypt" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" # HTTP to HTTPS redirect - "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true" - "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)" - "traefik.http.routers.redirs.entrypoints=web" - "traefik.http.routers.redirs.middlewares=redirect-to-https" db: image: mysql restart: always environment: MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - db-data:/var/lib/mysql volumes: wp-data: driver: local driver_opts: type: nfs o: addr=10.0.0.2,nolock,soft,rw device: ":/nfs/share/akashop/wp" db-data: driver: local driver_opts: type: nfs o: addr=10.0.0.2,nolock,soft,rw device: ":/nfs/share/akashop/db"