Here is an example of how I used docker-compose to deploy my current WordPress install. All my containers are exposed directly into my network using an IPv4 address. To store persistent data I use persistent volumes.
Command to create the persistent volume:
user@hdockerhost:~# sudo docker volume create -d local-persist -o mountpoint=/data/prod/Prod-WP-App1 --name=Prod-WP-App1
Example docker-compose.yaml:
version: '3.3'
services:
wordpress:
image: wordpress
container_name: Prod-WP-App1
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: IP from database
WORDPRESS_DB_USER: !secrets!
WORDPRESS_DB_PASSWORD: !secrets!
WORDPRESS_DB_NAME: !secrets!
volumes:
- Prod-WP-App1:/var/www/html
networks:
6852JR54:
ipv4_address: 172.16.X.X
db:
image: mysql:8.0
container_name: Prod-WP-DB1
restart: always
environment:
MYSQL_DATABASE: !secrets!
MYSQL_USER: !secrets!
MYSQL_PASSWORD: !secrets!
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- Prod-WP-DB1:/var/lib/mysql
networks:
6852JR54:
ipv4_address: 172.16.X.X
networks:
6852JR54:
external: true
volumes:
Prod-WP-App1:
external: true
Prod-WP-DB1:
external: true
Leave a Reply