Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Headless Wp Starter | 4,338 | 3 months ago | 52 | gpl-2.0 | JavaScript | |||||
🔪 WordPress + React Starter Kit: Spin up a WordPress-powered React app in one step | ||||||||||
Lando | 3,758 | 8 days ago | 150 | gpl-3.0 | Shell | |||||
A development tool for all your projects that is fast, easy, powerful and liberating | ||||||||||
Docker Traefik | 2,029 | 8 days ago | 53 | mit | Shell | |||||
Docker media and home server stack with Docker Compose, Traefik, Swarm Mode, Google OAuth2/Authelia, and LetsEncrypt | ||||||||||
Easyengine | 2,013 | a month ago | 51 | August 15, 2022 | 108 | mit | PHP | |||
Command-line control panel for Nginx Server to manage WordPress sites running on Nginx, PHP, MySQL, and Let's Encrypt | ||||||||||
Ddev | 1,837 | a day ago | 128 | apache-2.0 | Go | |||||
Docker-based local PHP+Node.js web development environments | ||||||||||
Wordmove | 1,808 | 10 | 2 | a year ago | 101 | January 04, 2022 | 17 | mit | Ruby | |
Multi-stage command line deploy/mirroring and task runner for Wordpress | ||||||||||
Wordpress | 1,534 | 15 days ago | 15 | gpl-2.0 | Shell | |||||
Docker Official Image packaging for WordPress | ||||||||||
Wordpress Docker Compose | 1,512 | 4 months ago | 22 | mit | Shell | |||||
Easy Wordpress development with Docker and Docker Compose | ||||||||||
Wordpressify | 1,512 | 8 months ago | 79 | May 14, 2022 | 1 | mit | JavaScript | |||
🎈 Automate your WordPress development workflow. | ||||||||||
Gutenberg Examples | 1,088 | 3 months ago | 25 | JavaScript | ||||||
Examples for extending WordPress/Gutenberg with blocks. |
WP Local Docker V2 is now available, please update to that version as v1 is no longer supported. Documentation available here.
This is a Docker based local development environment for WordPress.
This project is based on docker-compose. By default, the following containers are started: PHP-FPM, MySQL, Elasticsearch, nginx, and Memcached. The /wordpress
directory is the web root which is mapped to the nginx container.
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 custom phpfpm image is used for this environment that 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 https://github.com/10up/wp-local-docker.git <my-project-name>
cd <my-project-name>
docker-compose up
sh bin/setup.sh
..\bin\setup
.If you want to use a domain other than http://localhost
, you'll need to:
127.0.0.1 docker.localhost
Default MySQL connection information (from within PHP-FPM container):
Database: wordpress
Username: wordpress
Password: password
Host: mysql
Default WordPress admin credentials:
Username: admin
Password: password
Note: if you provided details different to the above during setup, use those instead.
Default Elasticsearch connection information (from within PHP-FPM container):
Host: http://elasticsearch:9200
The Elasticsearch container is configured for a maximum heap size of 750MB to prevent out of memory crashes when using the default 2GB memory limit enforced by Docker for Mac and Docker for Windows installations or for Linux installations limited to less than 2GB. If you require additional memory for Elasticsearch override the value in a docker-compose.override.yml
file as described below.
We've bundled a simple administrative override file to aid in local development where appropriate. This file introduces both phpMyAdmin and phpMemcachedAdmin to the Docker network for local administration of the database and object cache, respectively.
You can run this atop a standard Docker installation by specifying both the standard and the override configuration when initializing the service:
docker-compose -f docker-compose.yml -f admin-compose.yml up
The database tools can be accessed on port 8092.
The cache tools can be accessed on port 8093.
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: '3'
services:
phpfpm:
extra_hosts:
- "dashboard.localhost:172.18.0.1"
elasticsearch:
environment:
ES_JAVA_OPTS: "-Xms2g -Xmx2g"
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:
docker-compose exec --user root phpfpm bash
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
.
To increase efficiency with WP Local Docker, the following bash aliases can be added ~/.bashrc
or ~/.bash_profile
:
alias dcwp='docker-compose exec --user www-data phpfpm wp'
alias dcbash='docker-compose exec --user root phpfpm bash'
docker-stop() { docker stop $(docker ps -a -q); }
docker-compose up
to easily start up an instance with one command:
alias dup="docker-stop && docker-compose up -d"
MailCatcher runs a simple local SMTP server which catches any message sent to it, and displays it in its built-in web interface. All emails sent by WordPress will be intercepted by MailCatcher. To view emails in the MailCatcher web interface, navigate to http://localhost:1080
in your web browser of choice.
WP Snapshots is a project sharing tool for WordPress empowering developers to easily push snapshots of projects into the cloud for sharing with team members. Team members can pull snapshots such that everyhing "just works". WP Local Docker comes bundled with WP Snapshots and comes with a bin script to proxy commands from the host to the docker containers. To use WP Snapshots with WP Local Docker, follow the configuration instructions, substituting ./bin/wpsnapshots.sh
for wpsnapshots
in the CLI.
Example:
./bin/wpsnapshots.sh configure 10up
Once configured, you can use all of the WP Snapshots commands, again substituting ./bin/wpsnapshots.sh
for wpsnapshots
in the CLI.
Examples:
./bin/wpsnapshots.sh push
./bin/wpsnapshots.sh pull <snapshot-id>
./bin/wpsnapshots.sh search <search-text>
Xdebug is a PHP extension to assist with debugging and development.
In order to use remote Xdebugging follow the instructions below according to your favorite IDE.
pathMappings
settings in your launch.json. Example:"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {
"/var/www/html": "${workspaceRoot}/wordpress",
}
},
//...
]
WP Local Docker is an ever-evolving tool, and it's important to keep your local install up-to-date. Don't forget to git pull
the latest WP Local Docker code every once in a while to make sure you're running the latest version. We also recommend "watching" this repo on GitHub to stay on top of the latest development. You wont need to grab every update, but youll be aware of bug fixes and enhancements thatll keep your local development environments running smoothly.
It's especially important to git pull
the latest code before you docker pull
upgrades to your Docker images, either as a potential fix for an issue or just to make sure theyre running the latest versions of everything. This will make sure you have the latest WP Local Docker code first, including the docker-compose.yml
file that defines what Docker images and versions the environment uses.
Archived: This project is no longer maintained by 10up. We are no longer responding to Issues or Pull Requests unless they relate to security concerns. We encourage interested developers to fork this project and make it their own!
This project is our own flavor of an environment created by John Bloch.