WP Docker is a new project from 10up that makes it easy to set up a local WordPress development environment with Docker. Last year 10up worked with Joyent, a cloud infrastructure company, to create a production-ready implementation of WordPress in Docker. After their experience with this project, 10up created WP Docker as a simple, open source development environment based on docker-compose.
Docker is a virtualization technology that allows developers to work on websites and applications in isolated containers. It has many advantages over Vagrant, which takes up a lot more space with each virtual machine having its own operating system included. Docker runs off of a single Linux instance and the containers hold the application and its dependencies.
“While still viable, VVV, Vagrant, and Virtual Box/Hyper-V take up extreme disk space and are slow to provision, start up, and SSH into,” 10up Director of Engineering Taylor Lovett said. “Because of this, engineers tend to use one ‘mega’ VVV install for all of their development websites. This workflow poses a number of problems: system service version and configuration ‘normalization’ across all projects (i.e. PHP 7 on everything when some projects run PHP 5.6 in production), and legacy clutter (i.e. old websites and system packages undeleted).”
WP Docker is much more lightweight than VVV and starts up much faster. It comes packaged with Elasticsearch by default, so 10up’s ElasticPress plugin works out-of-the-box. The environment includes the following technologies by default:
VVV was started by a former 10up employee, Jeremy Felt, and the company still uses the project for local development in many cases. Certain instances, however, may lend themselves more to using VVV as opposed to WP Docker. Lovett said those include projects that are highly dependent on specific versions of system packages, such as PHP 5.6 and Elasticsearch 5.1.
“WP Docker lends itself well to enterprise clients that want to version control an environment specifically for their web application to be distributed to developers,” Lovett said. “This is common for large clients with large development teams. WP Docker lets a team standardize on a local setup which decreases bugs and ‘I see this but you don’t’ issues.”
Lovett said teams at 10up are still using VVV more often than WP Docker since it’s still quite new, but the company plans to let project requirements and team preferences drive adoption. The project is available on GitHub and has nearly 80 stars less than a week after its release.