akashop/docker/compose.yaml

58 lines
2.1 KiB
YAML
Raw Normal View History

2024-03-20 07:48:21 +00:00
version: '3.8'
# mount 10.0.0.2:/nfs/share/akashop /mnt/akashop
services:
# Traefik service
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=acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
ports:
- "80:80" # Expose Traefik on port 80 of the host
- "443:443" # Optional for HTTPS (requires additional configuration)
- "8080:8080" # /dashboard/
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
# - "/mnt/akashop/traefik.yml:/etc/traefik/traefik.yml"
- "/mnt/akashop/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:
- /mnt/akashop/wp:/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:
- /mnt/akashop/db:/var/lib/mysql