WordpressをDockerで構築する
経緯
Hugoを見つける前にブログ構築では十年以上前から使われてて、今でも現役なWordPressというツールをDocker環境上で構築したので、docker-composeを公開したいと思います。
ローカル環境用とEC2用二つのdocker-composeがあります
ローカル環境
- MacOS Catalina ver10.15.3
[docker-compose.yml]
version: "3.5"
services:
wordpress:
image: wordpress:latest
ports:
- 9000:80
volumes:
- ./wordpress:/var/www/html
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: database_password
db:
image: mysql:5.7
ports:
- 3306:3306
volumes:
- ./db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: database_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: database_password
volumes:
db_data:
このファイルと作成して後は
docker-compose up -d
これだけで構築できます。
AWSのEC2環境上で構築
- Amazon Linux
本番ではhttpsにする必要があるので、私はcertfrontを使用して、https化しました、
これだけでhttps化できるから便利ですよね、もちろんセキュリティグループは解放する必要はあります。
[docker-compose.yml]
version: "3.5"
services:
certfront:
image: hoto17296/certfront
ports:
- 80:80
- 443:443
environment:
DOMAIN: wordpress.2rta.com
EMAIL: [メールアドレス]
APP_HOST: wordpress
volumes:
- ./certs:/etc/letsencrypt
wordpress:
image: wordpress:latest
volumes:
- ./wordpress:/var/www/html
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: database_password
db:
image: mysql:5.7
ports:
- 3306:3306
volumes:
- ./db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: database_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: database_password
volumes:
db_data:
docker-compose up -d
ちょっとおまけ
EC2上でのDocker環境の構築方法について記載しておきます。
dokcerインストール
sudo yum install -y docker
sudo service docker start
sudo usermod -a -G docker ec2-user
一回再起動
sudo docker info
docker-composeインストール
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
まとめ
WordPress環境の構築について今回は記載しました、このブログはHugoで構築しているので、私が将来的にWordPressに移行することはあんまり考えられないですが、WordPressも素晴らしいツールだと思います、少しでも参考になると幸いです。