You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
1 year ago | |
---|---|---|
src | 1 year ago | |
.drone.yml | 1 year ago | |
.env.sample | 1 year ago | |
.gitignore | 1 year ago | |
README.md | 1 year ago | |
docker-compose.yml | 1 year ago |
README.md
wordpress-bedrock-docker
A template for a Wordpress site using Bedrock (Composer) + Docker.
Based on
autonomic-cooperative/wordpress-docker-composer
and
autonomic-cooperative/wordpress-nginx-docker
.
Quick start
- Install Docker, docker-compose, and git
- Create a new repository in Gitea, using this repository as a template
- Clone the new repository
- Copy
.env.sample
to.env
- Copy
src/.env.example
tosrc/.env
- Run
docker-compose up
You should now be able to access the local site on http://localhost
Development
Debugging
Set WP_ENV=development
in src/.env
to enable debugging output and the debug
log, and enable plugin and theme installation via the dashboard.
The debug log is located:
- outside containers:
./src/web/app/debug.log
- inside containers:
/app/web/app/debug.log
Importing a database dump
Assuming you have dump.sql.gz
in the current directory:
zcat dump.sql.gz | docker-compose exec -T db mysql -u wordpress -pwordpress wordpress
Post-restore steps:
- If the upload path was set in the database, you will need to change it (in
Settings → Media) to
/app/web/app/uploads
- If the site you're loading used a non-standard database table prefix (i.e.
not
wp
), you'll need to specify it asDB_PREFIX
insrc/.env
.
Deployment
Initial set-up
Our recommended production deployment set-up is:
- Web server: Nginx (ease of configuration vs. Apache, nobody seems to be using other web servers for Wordpress)
- PHP: PHP-FPM (better performance and security than mod_php)
- Database: MariaDB (flipped a coin between that and MySQL..)
- Auto-deployment: Drone (Autonomic standard)
- Updates: renovate-bot (Autonomic standard)
- Orchestration: Docker "swarm mode" / Co-op Cloud (Autonomic standard, also standardises backups and SSL, and makes it easier to migrate between servers)
- Host operating system: Debian (but others should work too)
- Server provisioning: Our autonomic-cooperative/infrastructure Ansible playbooks