-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
128 lines (123 loc) · 5.33 KB
/
Copy pathdocker-compose.yml
File metadata and controls
128 lines (123 loc) · 5.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
services:
app:
image: ghcr.io/hueske-digital/wordpress:latest
user: "1000:1000"
restart: unless-stopped
environment:
- TZ=Europe/Berlin
- WORDPRESS_DB_HOST=${DB_HOST:-db}
- WORDPRESS_DB_USER=${DB_USER:-wordpress}
- WORDPRESS_DB_PASSWORD=${DB_PASSWORD:-wordpress}
- WORDPRESS_DB_NAME=${DB_NAME:-wordpress}
- WORDPRESS_TABLE_PREFIX=${WORDPRESS_TABLE_PREFIX:-wp_}
- PHP_FPM_PM_CONTROL=${PHP_FPM_PM_CONTROL:-dynamic}
- PHP_FPM_PM_MAX_CHILDREN=${PHP_FPM_PM_MAX_CHILDREN:-8}
- PHP_FPM_PM_START_SERVERS=${PHP_FPM_PM_START_SERVERS:-2}
- PHP_FPM_PM_MIN_SPARE_SERVERS=${PHP_FPM_PM_MIN_SPARE_SERVERS:-1}
- PHP_FPM_PM_MAX_SPARE_SERVERS=${PHP_FPM_PM_MAX_SPARE_SERVERS:-3}
- PHP_FPM_PM_MAX_REQUESTS=${PHP_FPM_PM_MAX_REQUESTS:-200}
- SMTP_USER=${SMTP_USER}
- SMTP_PASS=${SMTP_PASS}
- SMTP_HOST=${SMTP_HOST:-mail.agenturserver.de}
- SMTP_FROM=${SMTP_FROM}
- WP_CLI_CACHE_DIR=/tmp/.wp-cli/cache
- WORDPRESS_DISABLE_NINJAFIREWALL=${WORDPRESS_DISABLE_NINJAFIREWALL:-false}
labels:
- ofelia.enabled=true
- "ofelia.job-exec.${COMPOSE_PROJECT_NAME}cron.schedule=${WORDPRESS_CRON_SCHEDULE:-0 */5 * * * *}"
- "ofelia.job-exec.${COMPOSE_PROJECT_NAME}cron.command=php wp-cron.php"
- "ofelia.job-exec.${COMPOSE_PROJECT_NAME}update.schedule=${WORDPRESS_UPDATE_SCHEDULE:-0 0 20 * * *}"
- "ofelia.job-exec.${COMPOSE_PROJECT_NAME}update.command=sh -c '{ [ -z \"$$(wp plugin list --update=available --field=name)\" ] || wp plugin update --all ${WORDPRESS_UPDATE_PLUGIN_PARAMS}; } && { [ -z \"$$(wp theme list --update=available --field=name)\" ] || wp theme update --all ${WORDPRESS_UPDATE_THEME_PARAMS}; } && wp language plugin --all update && wp language theme --all update && wp language core update'"
volumes:
- $PWD/data/web:/var/www/html
- $PWD/conf/php/user.ini:/usr/local/etc/php/conf.d/zzzz-user.ini
networks:
app_db:
app_web:
depends_on:
- db
web:
image: nginxinc/nginx-unprivileged:mainline-alpine-perl
restart: unless-stopped
environment:
- TZ=Europe/Berlin
- COMPOSE_PROJECT_NAME
- PERL5LIB=${PERL5LIB:-/usr/lib/perl5/vendor_perl/aarch64-linux-thread-multi}
- CADDY_DOMAIN=${CADDY_DOMAIN}
- CADDY_TYPE=${CADDY_TYPE:-external}
- CADDY_PORT=${CADDY_PORT:-80}
- CADDY_TLS=${CADDY_TLS:-true}
- CADDY_COMPRESSION=${CADDY_COMPRESSION:-true}
- CADDY_HEADER=${CADDY_HEADER:-true}
- CADDY_PERFORMANCE=${CADDY_PERFORMANCE:-true}
- CADDY_SECURITY=${CADDY_SECURITY:-true}
- CADDY_SEO=${CADDY_SEO:-true}
- CADDY_SEO_NOINDEX_TYPES=${CADDY_SEO_NOINDEX_TYPES:-}
- CADDY_WWW_REDIRECT=${CADDY_WWW_REDIRECT:-true}
- CADDY_WORDPRESS=${CADDY_WORDPRESS:-true}
- CADDY_LOGGING=${CADDY_LOGGING:-false}
volumes:
- $PWD/data/web:/var/www/html
- $PWD/conf/nginx/purge.pm:${PERL5LIB:-/usr/lib/perl5/vendor_perl/aarch64-linux-thread-multi}/purge.pm
- $PWD/conf/nginx/nginx.conf:/etc/nginx/nginx.conf
- $PWD/conf/nginx/8g.conf:/etc/nginx/conf.d/8g.conf
- $PWD/conf/nginx/8g-firewall.conf:/etc/nginx/conf.d/8g-firewall.conf
- $PWD/conf/nginx/default.conf.template:/etc/nginx/templates/default.conf.template
networks:
app_web:
caddy:
depends_on:
- app
db:
image: mariadb:${MARIADB_VERSION:-latest}
restart: unless-stopped
command: mariadbd --innodb-buffer-pool-size=${MARIADB_INNODB_BUFFER_SIZE:-128M} --max-connections=${MARIADB_MAX_CONNECTIONS:-150} --tmp-table-size=${MARIADB_TMP_TABLE_SIZE:-16M} --max-heap-table-size=${MARIADB_MAX_HEAP_TABLE_SIZE:-16M}
environment:
- TZ=Europe/Berlin
- MARIADB_ROOT_PASSWORD=${DB_ROOT_PASSWORD:-wordpress}
- MARIADB_DATABASE=${DB_NAME:-wordpress}
- MARIADB_USER=${DB_USER:-wordpress}
- MARIADB_PASSWORD=${DB_PASSWORD:-wordpress}
- MARIADB_AUTO_UPGRADE=1
labels:
- ofelia.enabled=true
- "ofelia.job-exec.${COMPOSE_PROJECT_NAME}dbrepair.schedule=${REPAIR_CRON_SCHEDULE:-0 0 6 * * *}"
- "ofelia.job-exec.${COMPOSE_PROJECT_NAME}dbrepair.command=sh -c 'mariadb-check --user=${DB_USER:-wordpress} --password=${DB_PASSWORD:-wordpress} --auto-repair --check --all-databases'"
- "ofelia.job-exec.${COMPOSE_PROJECT_NAME}dbbackup.schedule=${BACKUP_CRON_SCHEDULE:-0 0 3 * * *}"
- "ofelia.job-exec.${COMPOSE_PROJECT_NAME}dbbackup.command=sh -c 'mariadb-dump --user=${DB_USER:-wordpress} --password=${DB_PASSWORD:-wordpress} ${DB_NAME:-wordpress} > /docker-entrypoint-initdb.d/backup.sql'"
volumes:
- $PWD/data/db:/docker-entrypoint-initdb.d
- db_data:/var/lib/mysql
networks:
app_db:
ssh:
image: lscr.io/linuxserver/openssh-server:latest
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- PUBLIC_KEY_DIR=/keys
- SUDO_ACCESS=false
- PASSWORD_ACCESS=false
- USER_NAME=${COMPOSE_PROJECT_NAME}deployment
- LOG_STDOUT=true
volumes:
- ssh_config:/config
- $PWD/conf/ssh/add-rsync.sh:/custom-cont-init.d/add-rsync.sh:ro
- $PWD/data/web/wp-content/themes:/themes
- $PWD/keys:/keys:ro
ports:
- "${SSH_PORT:-2222}:2222"
networks:
default:
profiles:
- ssh
volumes:
db_data:
ssh_config:
networks:
default:
app_db:
app_web:
caddy: