Arakava CT101: WordPress-Docker dauerhaft tunen (Phase 1).
Compose, Apache MPM und MySQL my.cnf versionieren; mem_limits, InnoDB 512M und CT-RAM 6 GB gegen Worker-Stau.
This commit is contained in:
parent
fb0b1fe2a7
commit
c2295c49db
5 changed files with 84 additions and 0 deletions
|
|
@ -26,3 +26,21 @@ Manuelle Projektdoku fuer dauerhafte Hinweise, die **nicht** in die auto-generie
|
||||||
- Das alte `C`-Symbol von `Corona-Transition` wird fuer neue Beitraege nicht mehr verwendet.
|
- Das alte `C`-Symbol von `Corona-Transition` wird fuer neue Beitraege nicht mehr verwendet.
|
||||||
- Fuer `Norbert Haering` wurde ein neues WordPress-Medium hinterlegt und dem Feed zugeordnet.
|
- Fuer `Norbert Haering` wurde ein neues WordPress-Medium hinterlegt und dem Feed zugeordnet.
|
||||||
- Ein Test-/Live-Post wurde nach der Umstellung erfolgreich auf WordPress veroeffentlicht.
|
- Ein Test-/Live-Post wurde nach der Umstellung erfolgreich auf WordPress veroeffentlicht.
|
||||||
|
|
||||||
|
## Docker CT101 (wordpress-v2)
|
||||||
|
|
||||||
|
Versionierte Compose + Tuning unter `docker/`:
|
||||||
|
|
||||||
|
| Datei | Zweck |
|
||||||
|
|-------|-------|
|
||||||
|
| `docker/docker-compose.yml` | Stack + mem_limit (app 2g, mysql 1g) |
|
||||||
|
| `docker/apache/mpm_prefork.conf` | Apache Worker-Limit |
|
||||||
|
| `docker/mysql/my.cnf` | InnoDB buffer 512M, max_connections 50 |
|
||||||
|
| `docker/deploy.sh` | Deploy nach `/opt/wordpress/` |
|
||||||
|
|
||||||
|
CT-RAM: **6 GB** (Host pve-hetzner). Deploy:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd arakava-news/docker && ./deploy.sh
|
||||||
|
# oder manuell auf hetzner: pct set 101 -memory 6144
|
||||||
|
```
|
||||||
|
|
|
||||||
8
arakava-news/docker/apache/mpm_prefork.conf
Normal file
8
arakava-news/docker/apache/mpm_prefork.conf
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# CT101 Arakava — Docker mem_limit 2g, MySQL separat 1g
|
||||||
|
<IfModule mpm_prefork_module>
|
||||||
|
StartServers 3
|
||||||
|
MinSpareServers 2
|
||||||
|
MaxSpareServers 6
|
||||||
|
MaxRequestWorkers 14
|
||||||
|
MaxConnectionsPerChild 500
|
||||||
|
</IfModule>
|
||||||
16
arakava-news/docker/deploy.sh
Executable file
16
arakava-news/docker/deploy.sh
Executable file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Deploy Docker-Stack nach CT101 /opt/wordpress
|
||||||
|
set -euo pipefail
|
||||||
|
SRC="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
HOST="${1:-pve-hetzner}"
|
||||||
|
echo "Deploy von $SRC nach CT101 via $HOST"
|
||||||
|
ssh "$HOST" "mkdir -p /opt/wordpress/apache /opt/wordpress/mysql && rm -rf /opt/wordpress/mysql/my.cnf"
|
||||||
|
ssh "$HOST" "pct exec 101 -- mkdir -p /opt/wordpress/apache /opt/wordpress/mysql && rm -rf /opt/wordpress/mysql/my.cnf 2>/dev/null || true"
|
||||||
|
scp "$SRC/docker-compose.yml" "$HOST:/tmp/wp-compose.yml"
|
||||||
|
scp "$SRC/apache/mpm_prefork.conf" "$HOST:/tmp/mpm_prefork.conf"
|
||||||
|
scp "$SRC/mysql/my.cnf" "$HOST:/tmp/my.cnf"
|
||||||
|
ssh "$HOST" "pct push 101 /tmp/wp-compose.yml /opt/wordpress/docker-compose.yml && \
|
||||||
|
pct push 101 /tmp/mpm_prefork.conf /opt/wordpress/apache/mpm_prefork.conf && \
|
||||||
|
pct push 101 /tmp/my.cnf /opt/wordpress/mysql/my.cnf && \
|
||||||
|
pct exec 101 -- bash -c 'cd /opt/wordpress && docker compose up -d'"
|
||||||
|
echo "OK — pruefen: pct exec 101 -- docker stats --no-stream"
|
||||||
37
arakava-news/docker/docker-compose.yml
Normal file
37
arakava-news/docker/docker-compose.yml
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# CT101 wordpress-v2 — Quelle der Wahrheit (Deploy: /opt/wordpress/)
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: mysql:8.0
|
||||||
|
container_name: wordpress-mysql
|
||||||
|
restart: always
|
||||||
|
mem_limit: 1g
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: astral66
|
||||||
|
MYSQL_DATABASE: wordpress
|
||||||
|
MYSQL_USER: wordpress
|
||||||
|
MYSQL_PASSWORD: astral66
|
||||||
|
volumes:
|
||||||
|
- mysql_data:/var/lib/mysql
|
||||||
|
- ./mysql/my.cnf:/etc/mysql/conf.d/zz-custom.cnf:ro
|
||||||
|
|
||||||
|
wordpress:
|
||||||
|
image: wordpress:6.7-php8.2-apache
|
||||||
|
container_name: wordpress-app
|
||||||
|
restart: always
|
||||||
|
mem_limit: 2g
|
||||||
|
depends_on:
|
||||||
|
- mysql
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
environment:
|
||||||
|
WORDPRESS_DB_HOST: mysql
|
||||||
|
WORDPRESS_DB_NAME: wordpress
|
||||||
|
WORDPRESS_DB_USER: wordpress
|
||||||
|
WORDPRESS_DB_PASSWORD: astral66
|
||||||
|
volumes:
|
||||||
|
- wp_data:/var/www/html
|
||||||
|
- ./apache/mpm_prefork.conf:/etc/apache2/mods-enabled/mpm_prefork.conf:ro
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mysql_data:
|
||||||
|
wp_data:
|
||||||
5
arakava-news/docker/mysql/my.cnf
Normal file
5
arakava-news/docker/mysql/my.cnf
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
[mysqld]
|
||||||
|
# DB ~212 MB (2026-06) — ganzer Datensatz passt in Buffer
|
||||||
|
innodb_buffer_pool_size = 512M
|
||||||
|
innodb_buffer_pool_instances = 1
|
||||||
|
max_connections = 50
|
||||||
Loading…
Add table
Reference in a new issue