wordpressify
Version:
Automate your WordPress development workflow.
80 lines (75 loc) • 1.94 kB
YAML
version: "3.4"
services:
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_DATABASE: "wordpress"
volumes:
- "persistent_db:/var/lib/mysql"
ports:
- "3306:3306"
wordpress:
build:
dockerfile: ./Dockerfile-wordpress
context: .
expose:
- "9000"
environment:
WORDPRESS_DB_HOST: "db"
WORDPRESS_DB_USER: "root"
WORDPRESS_DB_PASSWORD: "root"
WORDPRESS_DB_NAME: "wordpress"
WORDPRESS_DEBUG: 1
WORDPRESS_CONFIG_EXTRA: |
define( 'DISABLE_WP_CRON', true );
define( 'WP_DEBUG_LOG', '/var/xdebug/wp-errors.log' );
define( 'FS_DIRECT', true );
volumes:
- "./build/wordpress:/var/www/html"
- "./xdebug:/var/xdebug"
- "./config/php.ini:/usr/local/etc/php/conf.d/overrides.ini"
depends_on:
- db
wordpress-chmod:
image: wordpress:6.8-php8.4-fpm
restart: on-failure
depends_on:
- wordpress
volumes:
- "./build/wordpress:/var/www/html"
entrypoint: >
/bin/sh -c "
chmod -R 777 wp-content/themes;
chmod -R 777 wp-content/plugins;
exit 0;
"
webserver:
image: nginx:alpine
ports:
- "8080:8080"
volumes:
- ./config/nginx/nginx.conf:/etc/nginx/conf.d/nginx.conf:ro
- "./build/wordpress:/var/www/html"
depends_on:
- wordpress-chmod
nodejs:
build:
dockerfile: ./Dockerfile-nodejs
context: .
ports:
- "3001:3001" # Default port for browserSync UI (for debugging)
- "${PROXY_PORT:-3010}:${PROXY_PORT:-3010}"
environment:
- PROXY_PORT=${PROXY_PORT:-3010}
- THEME_NAME=${THEME_NAME}
volumes:
- "./src:/usr/src/app/src"
- "./dist:/usr/src/app/dist"
- "./build:/usr/src/app/build"
- "./backups:/usr/src/app/backups"
depends_on:
- "webserver"
command: npm run dev
volumes:
persistent_db: