A while ago I used to do my WordPress development using this "vagrant-based" environment. It's very well written, opensource and comes with whatever you may need to create themes and plugins for WordPress.
But I wanted something lighter.
I needed a superlight WordPress installation, with no hassle and a very fast deployment. Docker Compose was the right choice.
- Containers are lighter than a Virtual Machine
- Containers are isolated but share the same OS and libraries (if needed)
- If needed, the same docker-compose.yml file can be used for development and production, making environments compatible at a higher level.
So, here's my
docker-compose.yml file, for you to use.
version: '3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wordpress MYSQL_USER: user MYSQL_PASSWORD: password wordpress: depends_on: - db image: wordpress:latest ports: - "8000:80" restart: always volumes: - ./wp-content/:/var/www/html/wp-content environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: user WORDPRESS_DB_PASSWORD: password volumes: db_data:
You can also clone it from GitHub, if you want.
Let's dig into this a bit...
First line: we're telling docker which syntax version we're going to use in the rest of the file. You can read more about the different versions on the docs.
Then in the
services section we're telling the system we need these images:
- MySQL version 5.7, with some "strong" credentials :P
- WordPress, latest version
For WordPress, we're telling the WordPress image to map the port 80 to our 8000, and to map the local
wp-content folder to the same folder in the WordPress installation.
We're going to put all our code in that folder, in order to make it available in the WordPress admin panel (think of themes and plugins).
So, to be up and running all you have to do is:
- Install docker from https://www.docker.com/
- Clone the repo
Open your browser. go to
http://localhost:8000 and you're good to go!
Easy, isn't it?
Originally published @ https://coding.napolux.com