Mandatory Services Docker Compose Breakdown
概要
srcs/docker-compose.yml における、必須要件 (Mandatory part) のサービス設定解説です。 これらのサービスは restart: always で構成され、異常終了時に自動再起動します。
Docker の仕組みについて: コンテナ技術、イメージビルドの仕組み、Docker Compose の動作原理についての詳細は、Dockerの仕組み (Deep Dive) を参照してください。
サービス定義詳細
Nginx (Gateway)
yaml
nginx:
container_name: nginx
build:
context: requirements/nginx
args:
DOMAIN_NAME: ${DOMAIN_NAME}
networks:
- inception
ports:
- "443:443"
volumes:
- wordpress:/var/www/html # WordPressの静的ファイルへアクセスするため
depends_on:
- wordpress- 唯一ポート 443 をホストに公開しています。
depends_onにより、WordPress が起動した後に立ち上がります。
WordPress (App)
yaml
wordpress:
container_name: wordpress
build: requirements/wordpress
networks:
- inception
volumes:
- wordpress:/var/www/html # データ永続化
depends_on:
- mariadb
- redis # (Bonus連携用)php-fpmとして動作し、ポート公開は行いません(Nginxからの内部アクセスのみ)。
MariaDB (DB)
yaml
mariadb:
container_name: mariadb
build: requirements/mariadb
networks:
- inception
volumes:
- mariadb:/var/lib/mysql # データ永続化- データベースファイルはホストの
/home/${USER}/data/mariadbに永続化されます。
データ永続化 (Volumes)
yaml
volumes:
wordpress:
driver: local
driver_opts:
type: none
o: bind
device: /home/${USER}/data/wordpress
mariadb:
driver: local
driver_opts:
type: none
o: bind
device: /home/${USER}/data/mariadb- Bind Mount: ホストの特定ディレクトリを直接マウントする設定です。これにより、コンテナを削除してもデータが保持されます。
ネットワーク (Networks)
yaml
networks:
inception:
driver: bridge- 全てのコンテナを同一のブリッジネットワークに所属させ、Docker 内 DNS による名前解決を可能にしています。