wp-docker-starter
Tools
Open Source
PHP
WordPress
WordPress Docker Starter
Lightweight boilerplate for WordPress projects based on Docker.
This boilerplate gives you ability to setup fresh WordPress instance with 10 seconds of configuration.
Build in tools helps you to track and manage database dumps – so important in WordPress development.
You can also work with your WordPress using WP-CLi and automated front-end runner(npm, Bower, Grunt, Gulp, Webpack, Composer) for your theme.
All features of this boilerplate can be accessible from command line.
Quick start
-
Clone this repository:
git clone https://github.com/cmachu/wp-docker-starter.git
-
Setup your configuration on
wp.sh
anddocker-compose.yml
files. More details you can find below, onSetup section
-
Install your WordPress using
./wp.sh init
command on your terminal -
Run your project using
./wp.sh run
command on your terminal
Default configuration
-
By default, you can find your WordPress project on
http://wordpress.localhost/
. -
You can login into WordPress admin panel using
root/root
login and password on pagehttp://wordpress.localhost/wp-admin
-
You can access PhpMyAdmin on URL
http://phpmyadmin.localhost/
and login into usingroot/root
user and password. -
./wp.sh init
command will createwordpress
database by default. -
By default, project is configured for multisite – you can access sub pages on subdomains, example
http://example.wordpress.localhost
. No extra pages on multisite are configured by default. -
Front-end processor has disabled all features by default. You need to configure
/bin/frontend.sh
for your project. You can add every front-end(npm, Webpack, Bower, Gulp, Grunt) and back-end(Composer) tool into this script.
Setup
Before first init run and WordPress instalation, you need to provide project details in two files – wp.sh
and docker-compose.yml
.
-
On file
docker-compose.yml
you need configure
-
Your project URL – By default there is
VIRTUAL_HOST=wordpress.localhost,*.wordpress.localhost
. -
PhpMyAdmin URL – By default there is
VIRTUAL_HOST=phpmyadmin.localhost
. -
MySQL database credentials, for default there is
MYSQL_ROOT_PASSWORD: root
. - You can configure every container according to specified container documentation.
-
On file
wp.sh
, you need provide variables described below:
-
BASH_GROUP='pawel'
– Your linux workgroup. -
BASH_USER='pawel'
– Your linux user – these variables are needed for chown commands after project init. -
WP_USER='root'
– WordPress admin username. -
WP_PASS='root'
– WordPress admin password. -
WP_EMAIL='root@wordpress.localhost'
– WordPress admin e-mail -
WP_URL='http://wordpress.localhost/'
– WordPress project url – must be the same asVIRTUAL_HOST=wordpress.localhost
. -
WP_TITLE='Sample website'
– WordPress project title -
WP_THEME='twentyseventeen'
– WordPress theme name – for fronted automated tools and watchers. -
DB_NAME='wordpress'
– Database name for WordPress installation. -
DB_USER='root'
– Database user – must be the same as on Evnvironments variables ondocker-compose.yml
-
DB_PASS='root'
– Database password – must be the same as on Evnvironments variables ondocker-compose.yml
-
DB_HOST='db:3306'
– Database user – must be the same as container name and port ondocker-compose.yml
Start and Stop project
You can start your WordPress project by few ways:
-
You can run full-stack runner(Docker + front-end tools + watchers) using
./wp.sh run
command on your terminal. Please remember to add valid theme folder onwp.sh
config area, and to setup valid front-end workflow on/bin/frontend.sh
. -
You can run Docker containers using
./wp.sh docker start
-
You can run only front-end tools and watchers using
./wp.sh frontend
-
When your Docker containers are running, you can import last database dump using
./wp.sh db import
command on terminal.
Stop project
-
You can export your database using
./wordpress db export
command. File will be automatically saved ondb_dumps
directory and prepared for import. -
When Dockers containers run on background, you can stop them using
./wp.sh docker stop
command on terminal.
Proposed Workflow
Our boilerplate determine some kind of workflow. Projects using this boilerplate and specified workflow could be contributed by few devs.
- Setup project using ‘./wp.sh init’, fill all necessary details.
- Install, activate, work on your theme and plugins.
-
Create db dump using
./wp.sh db export
. - Add all files with ‘db_dump’ folder to repository.
- You can pull your project from repository.
-
Run your Docker containers and if you want front-end preproccessors using
./wp.sh run
-
You can import your last database dump using
./wp.sh db import
Available tasks
-
./wp.sh docker start
– Start Docker containers -
./wp.sh docker stop
– Stop all Docker containers -
./wp.sh docker privi
– Re-attach chmods and ownership inside docker and system for WordPress. -
./wp.sh db import <filename:optional - default: last exported file>
– Import database dump from last exported file or from specified file name. Database dumps are located on…