✨ This project is not under active development. It may not work with the latest Docker. Future DWS updates uncertain at this time. ✨
DWS is a small set of scripts to manage WordPress containers in Docker. It uses a Traefik docker network for *.localhost domains to avoid manual port assignment.
This is work in progress and unstable!
This is somewhat of a personal project but it solves a fairly common problem so I'm sharing it for anyone to use and adapt.
- Docker must be installed and running on your machine
- Traefik docker network
Run npm init if you don't have a package.json.
Install docker-wordpress-scripts to the project repository:
npm install docker-wordpress-scripts --saveOr use the --global flag to use dws commands anywhere without npx.
Usage: dws <command> [options]
Commands:
dws up spin up a new project
dws stop stop running containers
dws start start existing containers
dws url output the *.localhost URL
dws down stop and remove existing containers
dws eject replace DWS dependency with config files
Options:
--help, -h Show help
--version, -v Show version number
npx dws upDWS will spin up new Docker containers and install WordPress. You'll be asked a few configuration values.
Once successful you'll see:
🤖 Success: WordPress is up and running!
phpMyAdmin: ➜ http://pma.wordpress.localhost
WordPress: ➜ http://wordpress.localhost
WordPress (auto login): ➜ http://wordpress.localhost/wp-auto-login.php
The wp-content directory is mounted to wordpress in the project repository.
npx dws stopStop all running containers for the project.
npx dws startStart all existing containers for the project.
npx dws urlOutput the *.localhost URL for the project.
npx dws downStop and remove all containers and volumes for the project leaving no trace in Docker. The WordPress content directories will persist in the project repository.
npx dws ejectRemove the DWS dependency. There is no going back! This adds a copy of docker-compose.yml and other config files to the project repository. You can continue by using docker-compose in the terminal.
The hostname & port for WordPress and phpMyAdmin moves to respectively:
localhost:8080
localhost:8081
See v0.9.1 for older configurations.
MIT License | Copyright © 2021 David Bushell