Skip to content

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 による名前解決を可能にしています。

Released under the MIT License.