基本戦略
アプリの動作に必要なapache, mysql, redisなどのパッケージをインストールしたイメージを用意する。
あとはソースだけを用意する場動作できる状態にする。
コンテナでは環境だけ構築してソースはdocker volume
を使ってDocker hostのソースがあるディレクトリをマウントするようにする。apacheやアプリのログもマウントしておくと便利。
同じようにUnit testなどのレポートもDocer hostで利用できるようにマウントしておく。
開発
ソースはhost側にマウントしてあるのでIDEなどで編集した内容はコンテナ内のアプリにも反映される。
Unit testのレポートもhost側で見られるようになるので、コンテナを削除した場合も消えることがない。
CI
同じイメージをCIのテスト用にすることで、同じ環境でテストを実行することができる。こちらもUnit testなどのレポートがDocker host上に残るのでJenkinsのreport publisherなどで結果を表示することができる。