Chapter 12

3部: 構成の全体図

ほげさん
ほげさん
2022.03.21に更新

3部は【 1部: はじめに 】でデモしたメールフォームのアプリケーションを構築しながら、コンテナの連携などを学びます。

image

構築するアプリケーションについて

このアプリケーションは次の3コンテナで構成されています。

  • 自分で PHP をインストールしたアプリケーションを動かすコンテナ ( 以後 App コンテナ )
  • メール送信履歴のためのデータベースのコンテナ ( 以後 DB コンテナ )
  • OSS のメールサーバのコンテナ ( 以後 Mail コンテナ )

また、2部で学んだ コンテナイメージDockerfile に加え、さらにいくつかの要素を使っており、全体を図示すると次のようになっています。

image

急に複雑に見えますが、1ページずつ分解し、少しずつシンプルに構築していきます。
以下に3部のインデックスと、そのページで構築する部分をハイライトした図を掲載します。

【 3部: イメージのビルド 】
image

【 3部: コンテナの起動 】
image

【 3部: ボリューム 】
image

【 3部: バインドマウント 】
image

【 3部: ポート 】
image

【 3部: ネットワーク 】
image

【 3部: Docker Compose 】
image

最後まで読み進めると、こと「開発環境を Docker で構築する」という点において 「全然わからない」ということはなくなっているはず です。

普段なんとなく Docker を利用している方やこの本を一度読んだ方も、必要なときにここのインデックスと図を見て部分的にでも役立てていただきたいと思います。

公開 GitHub リポジトリと雛形について

アプリケーションにいくつかの PHP ファイルが必要ですが、この本では PHP のコーディングはスコープ外としているため、こちらで用意した .php を下記リポジトリで公開しています。

これからの構築に即した空ディレクトリなども作ってありますので、活用してください。

https://github.com/suzuki-hoge/docker-practice

なおこのリポジトリは【 1部: はじめに 】のデモと同じものなので、git clone をして動かしてみた人はそのまま使ってください。

Host Machine
$ git clone https://github.com/suzuki-hoge/docker-practice

$ cd docker-practice/work 

$ tree .

.
|-- README.md
|-- docker
|   |-- app
|   `-- db
`-- src
    |-- form.php
    |-- history.php
    |-- index.php
    `-- mail.php

また、samples ディレクトリにはページごとの完成品も含まれていますので参考にしてください。

Host Machine
$ ls -1 ../samples

3-2-イメージのビルド
3-3-コンテナの起動
3-4-ボリューム
3-5-バインドマウント
3-6-ポート
3-7-ネットワーク
3-8-Docker-Compose

うまく動かないときは

【 3部: デバッグノウハウ 】にはエラーに対応するための 考え方 がいくつか書いてあります。

全てのエラーを想定して先に具体的な答えを用意するのは不可能なので少し抽象的な内容が多くなっていますが、問題が発生してどうしたら良いかわからないときにはぜひ役立ててください。