前回は、KUSANAGI RoD(以下RoD)で環境を生成するためのオプションについて説明しました。今回は、プロビジョン後に生成されるターゲットディレクトリ以下のファイルについて説明しようと思います。
provisionで生成したファイル
RoDでWordPressをプロビジョンした場合、ターゲットディレクトリ以下に、ファイル・ディレクトリが生成されます。
- docker-compose.yml
RoD環境でのdocker-compose の設定ファイルです - .git/、.gitignore
- Git管理用ディレクトリおよびファイルです
- ターゲットディレクトリ以下のファイルはすべてGit管理対象です
- 環境設定ファイル
docker-compose.yml で使用する環境変数をファイル内に格納します - .kusanagi
- .kusanagi.db
- .kusanagi.httpd
- .kusanagi.mail
- .kusanagi.mysql
- .kusanagi.php
- .kusanagi.wp
- contents/
コンテナボリューム内にある、/home/kusanagi/ターゲット名/ ディレクトリの中身をコピーしたものです - wpcli/
wpcli 用のDockerイメージ作成用ディレクトリです
WordPressをプロビジョニングしたときに作成されます
docker-compose.yml
docker-compose.yml の内容は以下のとおりです。
networks
bridgeとして1つのネットワークを作成します
version: '3'
networks:
default:
driver: bridge
driver_opts:
com.docker.network.driver.mtu: 9000
com.docker.network.enable_ipv6: "true"
- ネットワークを少しでも高速にするため、MTUを9000としています
- このネットワークではIPv6をサポートします
volumes
パーシスタンスボリューム(PV)の定義です。
volumes:
kusanagi:
database:
- /home/kusanagi 用と、データベーステーブル用のPVを用意しています
- この文はファイルの末尾に配置しています
httpd
httpd のサービスです。
services:
httpd:
container_name: wordpress_httpd
image: primestrategy/kusanagi-nginx:1.17.6-r0
restart: always
env_file:
- .kusanagi
- .kusanagi.httpd
volumes:
- kusanagi:/home/kusanagi
- kusanagi:/etc/letsencrypt
- kusanagi:/var/www/html/.well-known
ports:
- "80:8080"
- "443:8443"
extra_hosts:
- "a300.gpm.local:127.0.0.1"
- プロビジョン時のオプションで、nginx/httpdから指定した際のイメージが設定されます
- nginx/httpdイメージの内部使用ポートは8080と8443で、プロビジョン時に指定したポートからポートフォワードします
- /home/kusanagi およびcertbot用のディレクトリをPVとし、kusanagiボリュームを使用します
certbot
certbot により、let’s encrypt からSSL鍵を取得するサービスですが、現在は実験中の状態です。
certbot:
container_name: wordpress_certbot
image: certbot/certbot:v1.0.0
restart: always
network_mode: "service:httpd"
env_file:
- .kusanagi.httpd
volumes:
- kusanagi:/var/www/html/.well-known
- kusanagi:/etc/letsencrypt
command:
- --version
config
コンテナ内ファイル・DBへの操作を行うサービスです。
WordPressとそれ以外では作成する内容が異なります。
## CONFIG
config:
container_name: wordpress_config
restart: always
build:
context: ./wpcli
user: "1000:1001"
env_file:
- .kusanagi
- .kusanagi.wp
- .kusanagi.db
volumes:
- database:/var/run/mysqld
- kusanagi:/home/kusanagi
command: wp --version
- WordPress用は、wpcli ディレクトリでビルドしたイメージを使用します
- wpcliイメージはWordPressの正式イメージである wordpress:cli をベースにしてるため、wpコマンドが使用可能です
- socketファイルの位置をDBサービスに合わせて、/var/run/mysqld/mysqld.sock としてあります
## CONFIG
config:
container_name: lamp_config
image: primestrategy/kusanagi-config:1.0.1-r0
restart: always
user: "1000:1001"
env_file:
- .kusanagi
- .kusanagi.db
volumes:
- database:/var/run/mysqld
- kusanagi:/home/kusanagi
- WordPress以外は、kusanagi-config を使用します
php
php-fpmのサービスです。
php:
container_name: wordpress_php
image: primestrategy/kusanagi-php:7.3.12-r0
restart: always
env_file:
- .kusanagi
- .kusanagi.php
- .kusanagi.mail
network_mode: "service:httpd"
volumes:
- database:/var/run/mysqld
- kusanagi:/home/kusanagi
- httpdと同じネットワークに接続し、コンテナ外からの接続を行いません
- /home/kusanagi およびDB用のディレクトリをPVとし、kusanagi、databaseボリュームを使用します
- databaseボリュームを使用するのは、DBのUNIX socketを使用して通信するためです
DB
データベースサービスです。
## MYSQL
db:
container_name: wordpress_db
image: mariadb:10.4.11-bionic
restart: always
user: "999:999"
env_file:
- .kusanagi.mysql
network_mode: "service:httpd"
volumes:
- database:/var/run/mysqld
- database:/var/lib/mysql
- DB用のディレクトリをPVとし、databaseボリュームを使用します
- プロビジョン時に選択肢たオプションにより、mariadb もしくは postgresql のどちらかを使用します
- httpd のネットワークに接続していますが、DB接続にUNIX Socketを使用する場合は不要です
ftp
WordPressのときのみ使用されるftpサービスです
## FTPD
ftp:
container_name: wordpress_ftp
image: primestrategy/kusanagi-ftpd:1.0.2-r0
restart: always
network_mode: "service:httpd"
env_file:
- .kusanagi
- .kusanagi.wp
volumes:
- kusanagi:/home/kusanagi
- httpdと同じネットワークに接続し、コンテナ外からの接続を行いません
- /home/kusanagi をPVとし、kusanagiボリュームを使用します
終わりに
今回は、プロビジョン後に生成されるターゲットディレクトリ以下のファイルについて説明しました。次回は、今回説明できなかった環境設定ファイルについて説明しようと思います。次回をお楽しみに。
訂正とお詫び
前回の記事で以下の間違いがありましたので、修正させていただきます。
言語 | 説明 |
---|---|
ja_JP(偽) → ja(真) | 日本語 |