mirror of
git://develop.git.wordpress.org/
synced 2025-01-16 20:38:35 +01:00
1b09b7fc61
This updates the 5.0 branch to utilize the new reusable workflows in trunk introduced in [58165]. This also includes backports for a some additional improvements and bug fixes that are necessary for the local development environment to continue working long term: - The image and platform properties for the mysql container have been updated to always prefer `amd64` containers (#60822). - `macos-13` is now pinned for MacOS jobs instead of `macos-latest` (#61340). - Migrating to Docker Compose V2 (#60901). - Removing the version property from docker-compose.yml (#59416). - Improvements to how artifacts and comments for Playground testing are generated. - Removing SVN related commands causing failures (#61216). - Updating the `actions/github-scripts` action to the latest version. - Cache the results of `PHP_CodeSniffer` runs (#49783). - Move the Memcached container into the Docker Compose config (#55700). - Improvements to the `healthcheck` command for the `mysql` container (#58867). - Skip some tests when not in the primary branch (#50401). Merges [49264], [51673], [52179], [53552], [53895], [56464], [57918], [58157], [57124], [57125], [57249] to the 5.0 branch. Props johnbillion, joemcgill, swissspidy, thelovekesh, narenin, mukesh27, JeffPaul, peterwilsoncc, zieladam, ockham, SergeyBiryukov, jorbin, Clorith, afragen, jrf. See #49783, #58867, #61340, #60822, #61216, #60901, #61101, #59416, #59805, #61213. git-svn-id: https://develop.svn.wordpress.org/branches/5.0@58628 602fd350-edb4-49c9-b593-d223f7449a82
151 lines
3.8 KiB
YAML
151 lines
3.8 KiB
YAML
services:
|
|
|
|
##
|
|
# The web server container.
|
|
##
|
|
wordpress-develop:
|
|
image: nginx:alpine
|
|
|
|
networks:
|
|
- wpdevnet
|
|
|
|
ports:
|
|
- ${LOCAL_PORT-8889}:80
|
|
|
|
environment:
|
|
LOCAL_DIR: ${LOCAL_DIR-src}
|
|
|
|
volumes:
|
|
- ./tools/local-env/default.template:/etc/nginx/conf.d/default.template
|
|
- ./:/var/www
|
|
|
|
# Load our config file, substituting environment variables into the config.
|
|
command: /bin/sh -c "envsubst '$$LOCAL_DIR' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"
|
|
|
|
depends_on:
|
|
php:
|
|
condition: service_started
|
|
mysql:
|
|
condition: service_healthy
|
|
|
|
##
|
|
# The PHP container.
|
|
##
|
|
php:
|
|
image: wordpressdevelop/php:${LOCAL_PHP-7.3-fpm}
|
|
|
|
networks:
|
|
- wpdevnet
|
|
|
|
environment:
|
|
- LOCAL_PHP_XDEBUG+${LOCAL_PHP_XDEBUG-false}
|
|
- LOCAL_PHP_MEMCACHED=${LOCAL_PHP_MEMCACHED-false}
|
|
- PHP_FPM_UID=${PHP_FPM_UID-1000}
|
|
- PHP_FPM_GID=${PHP_FPM_GID-1000}
|
|
|
|
volumes:
|
|
- ./tools/local-env/php-config.ini:/usr/local/etc/php/conf.d/php-config.ini
|
|
- ./:/var/www
|
|
|
|
# The init directive ensures the command runs with a PID > 1, so Ctrl+C works correctly.
|
|
init: true
|
|
|
|
##
|
|
# The MySQL container.
|
|
##
|
|
mysql:
|
|
image: ${LOCAL_DB_TYPE-mysql}:${LOCAL_DB_VERSION-5.7}
|
|
platform: linux/amd64
|
|
|
|
networks:
|
|
- wpdevnet
|
|
|
|
ports:
|
|
- "3306"
|
|
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
|
|
volumes:
|
|
- ./tools/local-env/mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql
|
|
- mysql:/var/lib/mysql
|
|
|
|
# For compatibility with PHP versions that don't support the caching_sha2_password auth plugin used in MySQL 8.0.
|
|
command: --default-authentication-plugin=mysql_native_password
|
|
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "if [ \"$LOCAL_DB_TYPE\" = \"mariadb\" ]; then mariadb-admin ping -h localhost; else mysqladmin ping -h localhost; fi" ]
|
|
timeout: 5s
|
|
interval: 5s
|
|
retries: 10
|
|
|
|
##
|
|
# The WP CLI container.
|
|
##
|
|
cli:
|
|
image: wordpressdevelop/cli:${LOCAL_PHP-7.3-fpm}
|
|
|
|
networks:
|
|
- wpdevnet
|
|
|
|
environment:
|
|
- LOCAL_PHP_XDEBUG=${LOCAL_PHP_XDEBUG-false}
|
|
- LOCAL_PHP_MEMCACHED=${LOCAL_PHP_MEMCACHED-false}
|
|
- PHP_FPM_UID=${PHP_FPM_UID-1000}
|
|
- PHP_FPM_GID=${PHP_FPM_GID-1000}
|
|
|
|
volumes:
|
|
- ./:/var/www
|
|
|
|
# The init directive ensures the command runs with a PID > 1, so Ctrl+C works correctly.
|
|
init: true
|
|
|
|
depends_on:
|
|
php:
|
|
condition: service_started
|
|
mysql:
|
|
condition: service_healthy
|
|
|
|
##
|
|
# The PHPUnit container.
|
|
##
|
|
phpunit:
|
|
image: wordpressdevelop/phpunit:${LOCAL_PHPUNIT-6-php-7.3-fpm}
|
|
|
|
networks:
|
|
- wpdevnet
|
|
|
|
environment:
|
|
- LOCAL_PHP_XDEBUG=${LOCAL_PHP_XDEBUG-false}
|
|
- LOCAL_PHP_MEMCACHED=${LOCAL_PHP_MEMCACHED-false}
|
|
- LOCAL_DIR=${LOCAL_DIR-src}
|
|
- WP_MULTISITE=${WP_MULTISITE-false}
|
|
- PHP_FPM_UID=${PHP_FPM_UID-1000}
|
|
- PHP_FPM_GID=${PHP_FPM_GID-1000}
|
|
- TRAVIS_BRANCH=${TRAVIS_BRANCH-false}
|
|
- TRAVIS_PULL_REQUEST=${TRAVIS_PULL_REQUEST-false}
|
|
- GITHUB_REF=${GITHUB_REF-false}
|
|
- GITHUB_EVENT_NAME=${GITHUB_EVENT_NAME-false}
|
|
|
|
volumes:
|
|
- ./tools/local-env/phpunit-config.ini:/usr/local/etc/php/conf.d/phpunit-config.ini
|
|
- ./:/var/www
|
|
- phpunit-uploads:/var/www/${LOCAL_DIR-src}/wp-content/uploads
|
|
|
|
# The init directive ensures the command runs with a PID > 1, so Ctrl+C works correctly.
|
|
init: true
|
|
|
|
depends_on:
|
|
- mysql
|
|
|
|
volumes:
|
|
# So that sites aren't wiped every time containers are restarted, MySQL uses a persistent volume.
|
|
mysql: {}
|
|
# Using a volume for the uploads directory improves PHPUnit performance.
|
|
phpunit-uploads: {}
|
|
|
|
networks:
|
|
# Creating our own network allows us to connect between containers using their service name.
|
|
wpdevnet:
|
|
driver: bridge
|