"""
compose.yml
"""
services:
mysql:
image: mysql:8.0
container_name: user-17-blog_db
volumes:
- ./db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSORD: wordpress123
MYSQL_DATABASE: blog
MYSQL_USER: db-user-17
MYSQL_PASSORD: db-user-17-123
logging:
driver: gelf
options:
gelf-address: udp://127.0.0.1:12201
healthcheck:
test:
['CMD-SHELL','mysqladmin ping -h localhost -u root --password=wordpress123 || exit 1']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped
wordpress:
image: wordpress:beta-php8.3-fpm-alpine
container_name: user-17-blog
volumes:
- ./wordpress:/var/www/htm
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: word-user-17
WORDPRESS_DB_PASSWORD: word-user-17-123
healthcheck:
test: ['CMD-SHELL', 'curl -f http://localhost:80 || exit 1']
interval: 30s
timeout: 10s
retries: 3
web:
image: nginx:latest
container_name: user-17-web
volumes:
- ./mynginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- 8017:80
depends_on:
- wordpress
healthcheck:
test: ['CMD-SHELL', 'curl -f http://localhost:80 || exit 1']
interval: 30s
timeout: 10s
retries: 3
"""
nginx.conf
"""
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# Path to access.log & error.log
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
sendfile on;
keepalive_timeout 65;
gzip on;
upstream backend {
# must match the target service name
server wordpress:80;
}
server {
listen 80;
location / {
# $http_host is the host name that users seen on the browser URL
# and it equals to `HTTP_HOST` request header.
proxy_set_header Host $http_host;
# You have to change this according to your setup.
proxy_pass http://wordpress:80;
# Modify `Location` of 301 or 302 HTTP response, so
# that the browser will follow the correct location.
proxy_redirect ~^http://[^/]*/(.*) http://$http_host/$1;
}
}
}
"""
compose.yml
"""
services:
mysql:
image: mysql:8.0
container_name: user-17-blog_db
volumes:
- ./db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSORD: wordpress123
MYSQL_DATABASE: blog
MYSQL_USER: db-user-17
MYSQL_PASSORD: db-user-17-123
logging:
driver: gelf
options:
gelf-address: udp://127.0.0.1:12201
healthcheck:
test:
['CMD-SHELL','mysqladmin ping -h localhost -u root --password=wordpress123 || exit 1']
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped
wordpress:
image: wordpress:beta-php8.3-fpm-alpine
container_name: user-17-blog
volumes:
- ./wordpress:/var/www/htm
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: word-user-17
WORDPRESS_DB_PASSWORD: word-user-17-123
healthcheck:
test: ['CMD-SHELL', 'curl -f http://localhost:80 || exit 1']
interval: 30s
timeout: 10s
retries: 3
web:
image: nginx:latest
container_name: user-17-web
volumes:
- ./mynginx/nginx.conf:/etc/nginx/nginx.conf
ports:
- 8017:80
depends_on:
- wordpress
healthcheck:
test: ['CMD-SHELL', 'curl -f http://localhost:80 || exit 1']
interval: 30s
timeout: 10s
retries: 3
"""
nginx.conf
"""
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
}