akashop/docker/compose.yaml

71 lines
2.1 KiB
YAML

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"