Docker ComposeでWordPressの環境を構築してみます。
開発環境
macOS Mojave バージョン10.14
docker-compose version 1.23.2, build 1110ad01
Docker および Docker Compose については下記の関連ページをご覧下さい。
Docker入門 [Hello World] コマンドの基本
WordPress環境の構築
適当なディレクトリを作成して、その中にdocker-compose.ymlファイルを作成します。
1 2 3 |
mkdir wordpress cd wordpress vi docker-compose.yml |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
version: '3.3' services: wordpress: image: wordpress:latest depends_on: - db ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: - ./html:/var/www/html db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress volumes: db_data: |
17行目
生成されるコンテナ内の/var/www/htmlディレクトリ以下にWordPressのファイル群が配置されるので、ホスト側(本記事ではMacのローカル)のカレントディレクトリ(docker-compose.ymlがある場所)の/htmlディレクトリとバインド・マウントさせています。これによってホスト側でWordPressのテーマ等のファイルを編集し、すぐにコンテナ側に反映させることができます。バインド・マウントについては下記関連ページをご覧下さい。
22行目
MySQLのデータはデータボリュームに保存し永続化しています。
Data Volume Container について [Dockerの永続化]
コンテナを起動させます。
1 |
docker-compose up -d |
以上で「localhost:8000/」でブラウザからWordPressに接続することができます。
生成されたコンテナを確認。Nameの接頭語であるwordpress_は、はじめにmkdirで作成したディレクトリ名です。
1 2 3 4 5 6 |
docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------- wordpress_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp wordpress_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8000->80/tcp |
ホスト側のファイル群を確認。バインド・マウントしたhtmlディレクトリが生成され、WordPressのファイルが編集できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
tree -L 2 . ├── docker-compose.yml └── html ├── index.php ├── license.txt ├── readme.html ├── wp-activate.php ├── wp-admin ├── wp-blog-header.php ├── wp-comments-post.php ├── wp-config-sample.php ├── wp-config.php ├── wp-content ├── wp-cron.php ├── wp-includes ├── wp-links-opml.php ├── wp-load.php ├── wp-login.php ├── wp-mail.php ├── wp-settings.php ├── wp-signup.php ├── wp-trackback.php └── xmlrpc.php |
実際にログインして、記事の投稿・画像をアップロードすることも可能です。
コンテナの停止、再スタートのコマンドです。
1 |
docker-compose stop |
1 |
docker-compose restart |
下記コマンドでコンテナを削除します。ただしこの場合は、まだデータボリューム、つまりMySQLのデータは残っているので、docker-compose upによって新しくコンテナを作成した場合でも、WordPressのユーザー名やパスワード、作成した記事等は残っています。
1 |
docker-compose down |
もしコンテナの削除と同時にデータボリュームも削除したい場合は、下記コマンドを実行します。
1 |
docker-compose down --volumes |
※もちろんバインド・マウントしたホスト側のディレクトリ(./html)は残ったままです。完全に新規にWordPressの環境を構築し直す場合はこのhtmlディレクトリごと破棄して下さい。
参照ページ
Quickstart: Compose and WordPres