Skip to content

Instantly share code, notes, and snippets.

@webguywalker
Created July 14, 2022 01:00
Show Gist options
  • Save webguywalker/3b6e699f2cbe8f7b814e904e8f0095d3 to your computer and use it in GitHub Desktop.
Save webguywalker/3b6e699f2cbe8f7b814e904e8f0095d3 to your computer and use it in GitHub Desktop.
docker compose v3 | nginx, nginxproxy/docker-gen, nginxproxy/acme-companion, mysql, wordpress
version: "3.8"
services:
###################
nginx-proxy:
image: nginx:1.23-alpine
container_name: nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- confd:/etc/nginx/conf.d
- vhostd:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- certs:/etc/nginx/certs:ro
networks:
- nw1
command:
- /bin/bash
- -c
- |
apk update;
apk add nginx-mod-http-headers-more;
nginx -g 'daemon off;'
network_mode: bridge
###################
nginx-proxy-gen:
image: nginxproxy/docker-gen
container_name: nginx-proxy-gen
command: -notify-sighup nginx-proxy -watch /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
volumes_from:
- nginx-proxy
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /docker/nginx-proxy-gen/nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
labels:
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.docker_gen"
network_mode: bridge
###################
nginx-proxy-acme:
image: nginxproxy/acme-companion
container_name: nginx-proxy-acme
environment:
- DEFAULT_EMAIL=***HIDDEN***
volumes_from:
- nginx-proxy
volumes:
- certs:/etc/nginx/certs:rw
- acme:/etc/acme.sh
- /var/run/docker.sock:/var/run/docker.sock:ro
network_mode: bridge
###################
mysql:
image: mysql:5.7
platform: linux/x86_64
container_name: mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=***HIDDEN***
- MYSQL_RANDOM_ROOT_PASSWORD=yes
volumes:
- mysql_db:/var/lib/mysql
ports:
- 3306:3306
networks:
- mysql
###################
wordpress:
image: wordpress:6.0.0-php8.1-apache
container_name: demo-0
restart: always
expose:
- 80
environment:
- VIRTUAL_HOST=***HIDDEN***
- LETSENCRYPT_HOST=***HIDDEN***
- HTTPS_METHOD=redirect
- VIRTUAL_PROTO=http
- VIRTUAL_PORT=80
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=***HIDDEN***
- WORDPRESS_DB_PASSWORD=***HIDDEN***
- WORDPRESS_DB_NAME=***HIDDEN***
volumes:
- demo-0:/var/www/html
networks:
- mysql
- nw1
depends_on:
- mysql
- nginx-proxy
volumes:
certs:
acme:
confd:
vhostd:
html:
mysql_db:
demo-0:
networks:
mysql:
name: mysql
nw1:
name: nw1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment