https://github.com/carlossalasamper/local-wordpress
š³ A local WordPress setup using Docker Compose.
https://github.com/carlossalasamper/local-wordpress
docker docker-compose docker-wordpress m mariadb mariadb-database mysql mysql-database wordpress wordpress-boilerplate wordpress-development wordpress-docker wordpress-mysql
Last synced: 3 months ago
JSON representation
š³ A local WordPress setup using Docker Compose.
- Host: GitHub
- URL: https://github.com/carlossalasamper/local-wordpress
- Owner: carlossalasamper
- License: mit
- Created: 2023-12-25T10:11:03.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-12-25T10:19:51.000Z (about 2 years ago)
- Last Synced: 2025-01-23T22:34:20.008Z (about 1 year ago)
- Topics: docker, docker-compose, docker-wordpress, m, mariadb, mariadb-database, mysql, mysql-database, wordpress, wordpress-boilerplate, wordpress-development, wordpress-docker, wordpress-mysql
- Homepage:
- Size: 37.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Local WordPress: WordPress + MySQL
This example defines one of the basic setups for WordPress with [Docker Compose](https://docs.docker.com/compose/).
More details on how this works can be found on the official [WordPress image page](https://hub.docker.com/_/wordpress).
## Project structure
```
āāā /assets
āāā docker-compose.yaml
āāā LICENSE
āāā README.md
```
[_docker-compose.yaml_](docker-compose.yaml)
```
services:
wordpress-db:
# We use a mariadb image which supports both amd64 & arm64 architecture
image: mariadb:10.6.4-focal
# If you really want to use MySQL, uncomment the following line
#image: mysql:8.0.27
...
wordpress:
image: wordpress:latest
ports:
- 80:80
restart: always
...
```
When deploying this setup, docker compose maps the WordPress container port 80 to
port 80 of the host as specified in the compose file.
> ā¹ļø **_INFO_**
> For compatibility purpose between `AMD64` and `ARM64` architecture, we use a MariaDB as database instead of MySQL.
> You still can use the MySQL image by uncommenting the following line in the Compose file
> `#image: mysql:8.0.27`
## Deploy with docker compose
```
$ docker compose up -d
Creating network "wordpress-mysql_default" with the default driver
Creating volume "wordpress-mysql_db_data" with default driver
...
Creating wordpress-mysql_db_1 ... done
Creating wordpress-mysql_wordpress_1 ... done
```
## Expected result
Check containers are running and the port mapping:
```
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5fbb4181a069 wordpress:latest "docker-entrypoint.sā¦" 35 seconds ago Up 34 seconds 0.0.0.0:80->80/tcp wordpress-mysql_wordpress_1
e0884a8d444d mysql:8.0.19 "docker-entrypoint.sā¦" 35 seconds ago Up 34 seconds 3306/tcp, 33060/tcp wordpress-mysql_db_1
```
Navigate to `http://localhost:80` in your web browser to access WordPress.

Stop and remove the containers
```
$ docker compose down
```
To remove all WordPress data, delete the named volumes by passing the `-v` parameter:
```
$ docker compose down -v
```