- PostgreSQL database environment
- MySQL database environment
- Wordpress project on isolated environment
repository
├── postgres/
│ ├── docker-compose-postgres.yml
├── mysql/
│ ├── docker-compose-mysql.yml
├── wordpress-project/
│ ├── .env.example
│ ├── docker-compose-db-init.yml
│ ├── docker-compose-wordpress.yml
│ ├── docker-compose-override.yml
│ ├── dump.sql (for test purposes)
│ ├── Makefile
│ └── wp-config.php
└── README.md
- Create
.envwith desired variables
make up # start postgres + pgadmin
make ps # see containers
make logs # tail logs
make down # stop (keep data)
make nuke # stop + DELETE data volumes
make save-images / load-images # offline kitpostgres
├── user: `set on .env`
├── password: `set on .env`
└── port: `set on .env`
- Run
docker compose -f docker-compose-mysql.yml - Access phpMyAdmin on
localhost:8080
mysql
├── port: 3306
phpmyadmin
├── port: 8080
├── user: root
└── root_password: root
WordPress project uses Makerfile to create and run the environment
- Run
maketo:- Create and import the database
- Remove the initiator container
- Create a isolated container based on
Dockerfile - Call wordpress image if no
Dockerfileis found - Mount/bind local code to docker container
- Use
host.docker.internalasDB_HOSTto connect from project containers to the MySQL container on Windows/Mac. - Ensure consistent MySQL user permissions to isolate databases.
- Each project mounts its code locally for live updates.
- You can customize PHP/Apache versions per project if needed.
-
PostgreSQL environment (once):
- Create
.envwith desired variables
make up # start postgres + pgadmin make ps # see containers make logs # tail logs make down # stop (keep data) make nuke # stop + DELETE data volumes make save-images / load-images # offline kit
- Create
-
MySQL environment (once):
docker compose -f docker-compose-mysql.yml up -d
-
For each WordPress project:
- Add your code and
.env - Run the project with:
make
- Add your code and