Skip to content

Instantly share code, notes, and snippets.

@hsur

hsur/README.md Secret

Last active February 14, 2023 15:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hsur/73cb3fcfc40b9c1ea5c05a74d4e7ca3d to your computer and use it in GitHub Desktop.
Save hsur/73cb3fcfc40b9c1ea5c05a74d4e7ca3d to your computer and use it in GitHub Desktop.
docker-compose.yml file consisting of wordpress+mariadb+nginx+Let's Encrypt.

README.md

About

docker-compose.yml file consisting of wordpress+mariadb+nginx+Let's Encrypt.

Setup

mkdir -p nginx/conf.d
mkdir -p nginx/log
mkdir ssl_certs
mkdir wordpress

mv nginx_conf.d_default.conf nginx/conf.d/default.conf
mv nginx_conf.d_http_realip.conf nginx/conf.d/http_realip.conf
mv nginx_nginx.conf nginx/nginx_nginx.conf

docker compose up -d
version: '3.3'
services:
db:
image: mariadb:latest
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
TZ: Asia/Tokyo
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:6-php8.2-fpm-alpine
restart: always
volumes:
- ./wordpress:/var/www/html
- ./php-uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
TZ: Asia/Tokyo
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
nginx:
image: nginx:alpine
depends_on:
- wordpress
links:
- wordpress
restart: always
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/log:/var/log/nginx
- ./wordpress:/var/www/html
environment:
TZ: Asia/Tokyo
https-portal:
image: steveltn/https-portal:1
depends_on:
- nginx
links:
- nginx
ports:
- 80:80
- 443:443
restart: always
volumes:
- ./ssl_certs:/var/lib/https-portal
environment:
TZ: Asia/Tokyo
DOMAINS: 'www.example.com -> http://nginx:80, www.example.com => https://www.example.com'
#STAGE: production
CLIENT_MAX_BODY_SIZE: 64M
volumes:
db_data: {}
server {
listen 80;
server_name 127.0.0.1;
root /var/www/html;
index index.php;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
set_real_ip_from 172.16.0.0/12;
set_real_ip_from 10.0.0.0/8;
set_real_ip_from 192.168.0.0/16;
real_ip_header X-Forwarded-For;
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
}
file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment