2017年10月23日月曜日

webdevopsのdockerテンプレートを活用する

AWS, Google, Azure各サービス、コンテナのサポートが進むなか、遅ればせながらSymfonyのアプリケーションをdockerで動かすにはどうすればいいのか検討することにしました。

とりあえず動かす程度であればそれほど苦労はしないものの、本番アプリケーションを稼働させようとすると、いろいろ課題が見えてきました。

  • データベースはどこに用意しよう?
  • ログの永続化しないと消えちゃうね
  • バッチでファイルを生成してるけど、これも消えちゃうね
  • cronは?
  • メール送信は?

以前dockerをテストしていた時はubuntuのイメージをベースにapache入れて、設定して、をDockerfileにつらつら書いていましたが、最近のdocker普及によって様々なDockerfileが公開されています。これを使う手はない!と思い、検索してヒットして見つかったのが、webdevopsdockerリポジトリ です。

このリポジトリの特徴は、base と呼ばれるベースイメージを元に、alpine, centos, debian, ubuntu という複数のディストリビューション向けのlamp環境を提供しているところです。

base で用意されているコンテナ起動時のスクリプト(entrypoint.sh)からの複数サービス起動が整っているのも便利です。Dockerfile本体に手をいれずに、COPYするconfディレクトリに設定を追加しておけば、必要があれば複数のサービスを起動できます。

Dockerfileをいじらずにさまざまな設定を行うことができる反面、ディレクトリ構造やentrypoint.shからのスクリプト実行の流れはわかりづらい印象があります。自分の覚え書きも兼ねて、しばらく webdevops でいろいろ遊んで(?)みようと思います。