ミドルウェアをDocker化する方法
ここまで、
ミドルウェアをDocker化するメリット
ローカル環境で複数プロジェクトの開発を行っていると、
そこで、
ミドルウェアをDocker化するために必要なこと
Webアプリケーション開発の文脈でミドルウェアをDocker化するためには、
- ① 1つのミドルウェアを1つのコンテナとして起動する
- ② Webアプリケーションのコンテナと各ミドルウェアのコンテナをリンク機能で接続する
- ③ 接続された複数のコンテナの起動・
停止を、 1つのまとまりとして管理する
①については前述しましたので、
コンテナの接続
あるコンテナから別のコンテナ、
ここでは例として、db
という名前で起動しておき、--link
オプションでWebアプリケーションコンテナとリンクさせます
$ docker run -d --name db mysql:5.6
$ docker run -p 5000:5000 -v ./:/code -v ./local:/cpan --link db:db docker-sample-runtime carton exec plackup -a script/local-server
リンクの結果、DB_
にMySQLコンテナのIPアドレス、DB_
にMySQLコンテナのポートが設定されます。Webアプリケーションコード内でデータベースのIPアドレスやポート番号を指定する個所があるはずなので、
詳しくは、
Docker Composeによるコンテナの管理
MySQLなどミドルウェアとの連携を考えると、
Docker Composeは、
使い方は簡単です。まずdocker-compose.
という名前でリスト5のようなファイルを用意します。リスト5にはWebアプリケーションコンテナdocker-compose.
と同じディレクトリにあるものとします。
web:
build: ./
ports:
- "5000:5000"
volumes:
- ./:/code
- ./local:/cpan
links:
- db
command: script/local-server
db:
environment:
- MYSQL_USER=myuser
- MYSQL_PASSWORD=mypass
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=docker-sample
privileged: true
docker-compose.
と同じディレクトリでdockercompose up
コマンドを実行すると、
$ docker-compose up
この状態で
まとめ
今回はPerlのWebアプリケーションをDocker化する方法について紹介しました。
Dockerは今ホットな領域ということもあり、
さて、