This is a Docker based local development environment for WordPress with Roots Bedrock.
This project is based on docker-compose. By default, the following containers are
started: PHP-FPM, MariaDB, Elasticsearch, nginx, and Memcached. The /site/web
directory is the web root which is
mapped to the nginx container. See Bedrock for more info.
Docs from 10up/wp-docker
You can directly edit PHP, nginx, and Elasticsearch configuration files from within the repo as they are mapped to the correct locations in containers.
A Dockerfile
is included for PHP-FPM (/dockerfiles/php-fpm/Dockerfile
). This adds a few extra things to the
PHP-FPM image.
The /config/elasticsearch/plugins
folder is mapped to the plugins folder in the Elasticsearch container. You can
drop Elasticsearch plugins in this folder to have them installed within the container.
git clone git@github.com:dwnload/wp-docker-bedrock.git <my-project-name>
cd <my-project-name>
docker-compose up
- Run
bash ./bin/setup.sh
to download Bedrock.
Default MySQL connection information (from within PHP-FPM container):
Database: wordpress
Username: wordpress
Password: password
Host: mysql
Default Elasticsearch connection information (from within PHP-FPM container):
Host: http://elasticsearch:9200
Adding a docker-compose.override.yml
file alongside the docker-compose.yml
file, with contents similar to
the following, allows you to change the domain associated with the cluster while retaining the ability to pull in changes from the repo.
version: '2'
services:
phpfpm:
extra_hosts:
- "dashboard.dev:172.18.0.1"
Add this alias to ~/.bash_profile
to easily run WP-CLI command.
alias dcwp='docker-compose exec --user www-data phpfpm wp'
Instead of running a command like wp plugin install
you instead run dcwp plugin install
from anywhere inside the
<my-project-name>
directory, and it runs the command inside of the php container.
There is also a script in the /bin
directory that will allow you to execute WP CLI from the project directory directly: ./bin/wp plugin install
.
You can easily access the WordPress/PHP container with docker-compose exec
. Here's a simple alias to add to your ~/.bash_profile
:
alias dcbash='docker-compose exec --user root phpfpm bash'
This alias lets you run dcbash
to SSH into the PHP/WordPress container.
Alternatively, there is a script in the /bin
directory that allows you to SSH in to the environment from the project directory directly: ./bin/ssh
.
This project is our own flavor of an environment created by the 10up team based on work by John Bloch. Some additional code was used from easypath/bedrock-docker.