とりあえず動かす程度であればそれほど苦労はしないものの、本番アプリケーションを稼働させようとすると、いろいろ課題が見えてきました。
- データベースはどこに用意しよう?
- ログの永続化しないと消えちゃうね
- バッチでファイルを生成してるけど、これも消えちゃうね
- cronは?
- メール送信は?
以前dockerをテストしていた時はubuntuのイメージをベースにapache入れて、設定して、をDockerfileにつらつら書いていましたが、最近のdocker普及によって様々なDockerfileが公開されています。これを使う手はない!と思い、検索してヒットして見つかったのが、webdevops の dockerリポジトリ です。
このリポジトリの特徴は、base と呼ばれるベースイメージを元に、alpine, centos, debian, ubuntu という複数のディストリビューション向けのlamp環境を提供しているところです。
base で用意されているコンテナ起動時のスクリプト(entrypoint.sh)からの複数サービス起動が整っているのも便利です。Dockerfile本体に手をいれずに、COPYするconfディレクトリに設定を追加しておけば、必要があれば複数のサービスを起動できます。
Dockerfileをいじらずにさまざまな設定を行うことができる反面、ディレクトリ構造やentrypoint.shからのスクリプト実行の流れはわかりづらい印象があります。自分の覚え書きも兼ねて、しばらく webdevops でいろいろ遊んで(?)みようと思います。