WP test container created
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# A clean WordPress for the TLIG theme.
|
||||
#
|
||||
# Deliberately NOT the wp-migrate rig. That one bind-mounts the production tree
|
||||
# — Avada, 55 plugins, a 1.5 GB database — and exists to mirror what ships. This
|
||||
# one boots in seconds with nothing but core, so the theme has to stand on its
|
||||
# own. Keep both: the other is the reference to compare against.
|
||||
name: tlig-theme
|
||||
|
||||
services:
|
||||
db:
|
||||
image: mysql:8.4
|
||||
command: ["--mysql-native-password=ON"]
|
||||
environment:
|
||||
MYSQL_DATABASE: tlig
|
||||
MYSQL_USER: tlig
|
||||
MYSQL_PASSWORD: tlig
|
||||
MYSQL_ROOT_PASSWORD: tlig
|
||||
volumes:
|
||||
- db:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-ptlig"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 20
|
||||
|
||||
wp:
|
||||
image: wordpress:php8.3-apache
|
||||
# Skip the image's core-unpacking entrypoint: core is already on disk in
|
||||
# site/, extracted from this same image so the versions cannot drift. The
|
||||
# entrypoint would otherwise try to chmod a bind mount it does not own.
|
||||
entrypoint: ["apache2-foreground"]
|
||||
# Fedora runs SELinux enforcing, which blocks container access to bind
|
||||
# mounts — including, silently, the config files below, which is why Apache
|
||||
# kept binding port 80 despite a mounted ports.conf.
|
||||
security_opt:
|
||||
- label=disable
|
||||
# Rootless podman maps the host user to container root by default, but
|
||||
# Apache refuses to run workers as root. keep-id maps host uid 1000 to
|
||||
# container uid 1000, so the container process is literally the owner of the
|
||||
# bind-mounted tree. Under rootful docker, drop this and set RUN_UID=1000.
|
||||
userns_mode: "keep-id"
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "8090:8080"
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db
|
||||
WORDPRESS_DB_NAME: tlig
|
||||
WORDPRESS_DB_USER: tlig
|
||||
WORDPRESS_DB_PASSWORD: tlig
|
||||
WORDPRESS_DEBUG: "1"
|
||||
WORDPRESS_CONFIG_EXTRA: |
|
||||
define( 'WP_DEBUG_DISPLAY', true );
|
||||
define( 'SCRIPT_DEBUG', true );
|
||||
define( 'DISALLOW_FILE_EDIT', true );
|
||||
# The project's own site/ is the docroot, so a Vite build lands in the
|
||||
# running theme immediately — no copy step, no container restart. Config is
|
||||
# mounted over the top, so site/ never holds environment-specific settings.
|
||||
volumes:
|
||||
- ../site:/var/www/html
|
||||
- ./wp-config.php:/var/www/html/wp-config.php:ro
|
||||
- ./apache-ports.conf:/etc/apache2/ports.conf:ro
|
||||
- ./apache-vhost.conf:/etc/apache2/sites-enabled/000-default.conf:ro
|
||||
- ./apache-local.conf:/etc/apache2/conf-enabled/zz-local.conf:ro
|
||||
user: "${RUN_UID:-1000}:${RUN_GID:-1000}"
|
||||
|
||||
cli:
|
||||
image: wordpress:cli-php8.3
|
||||
security_opt:
|
||||
- label=disable
|
||||
userns_mode: "keep-id"
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db
|
||||
WORDPRESS_DB_NAME: tlig
|
||||
WORDPRESS_DB_USER: tlig
|
||||
WORDPRESS_DB_PASSWORD: tlig
|
||||
volumes:
|
||||
- ../site:/var/www/html
|
||||
- ./wp-config.php:/var/www/html/wp-config.php:ro
|
||||
user: "${RUN_UID:-1000}:${RUN_GID:-1000}"
|
||||
profiles: ["cli"]
|
||||
|
||||
volumes:
|
||||
db:
|
||||
Reference in New Issue
Block a user