Docker で Mojolicious の開発環境を構築
docker-compose を使った Mojolicious の開発環境構築の手順メモ
検証環境
Windows10 Home Edition VirtualBox 5.1.20 Docker version 17.05.0-ce, build 89658be docker-compose version 1.6.2, build 4d72027
ディレクトリ構成
+---mojo | | docker-compose.yml | | | +---data | | Dockerfile | | | +---perlcli | Dockerfile | +---logs | +---www cpanfile
各種設定ファイル
mojo/docker-compose.yml
version: "2" services: data: build: ./data volumes: - ../:/data perlcli: build: ./perlcli volumes_from: - data plack: image: mojo_perlcli volumes_from: - data ports: - "3000:3000" command: ["carton","exec","plackup","-p","3000","myapp.pl"] depends_on: - perlcli
mojo/data/Dockerfile
FROM busybox LABEL maintainer "takaya030" RUN mkdir -p /data VOLUME ["/data"] CMD ["true"]
mojo/perlcli/Dockerfile
FROM perl:5.24.1 LABEL maintainer "takaya030" WORKDIR /tmp RUN apt-get update -y && \ apt-get clean && \ rm -fr /var/lib/apt/lists/* # install carton RUN cpanm Carton # create docker user RUN useradd -d /home/docker -m -s /bin/bash -u 1000 -g 50 docker RUN mkdir -p /data/www VOLUME ["/data"] WORKDIR /data/www USER 1000 CMD ["perl","-v"]
www/cpanfile
requires 'Plack', '1.0044'; requires 'Mojolicious', '7.31';
Mojolicious と Plack のインストール
イメージビルド後、以下のコマンドで Mojolicious と Plack をインストールします。
$ docker-compose run --rm perlcli carton install
動作確認
以下のコマンドでサンプルアプリケーションを作成します。
$ docker-compose run --rm perlcli carton exec -- mojo generate lite_app myapp.pl
以下のコマンドで plack サーバーが起動します。
$ docker-compose up -d
web ブラウザで http://192.168.99.100:3000 にアクセスして以下の画面が表示されれば成功です。