Perl6のCroを題材にDockerを勉強する(始めの一歩)
始めに
仕事でDockerを使うことになったのだが、何から勉強していいのか分からないし、 リファレンスやドキュメントを読んでいるだけではつまらない。
そういえば、先日Perl6のCroの入門をしている際にDockerfileを生成を生成していた。とりあえずこれを読んでみようと思った。
Dockerfile
- FROM croservices/cro-http:0.8.1
- RUN mkdir /app
- COPY . /app
- WORKDIR /app
- RUN zef install --deps-only . && perl6 -c -Ilib service.p6
- ENV HELLO_PORT="10000" HELLO_HOST="0.0.0.0"
- EXPOSE 10000
- CMD perl6 -Ilib service.p6
1. FROM croservices/cro-http:0.8.1
2. RUN mkdir /app
- RUN: 実行
- / に appディレクトリを作成
3. COPY . /app
- COPY: ファイルやディレクトリをコンテナ内にコピーする
- URLの指定不可、自動解凍もしない
- ADD: 指定したファイル・ディレクトリをコンテナ内にコピーする URLの指定が可能、tarファイルは自動解凍する。
4. WORKDIR /app
- WORKDIR: 作業ディレクトリを変更する
5. RUN zef install --deps-only . && perl6 -c -Ilib service.p6
- zef install --deps-only . : 要求されたディストリビュージョンの依存関係チェーンのみをインストール
- perl6 -c -Ilib service.p6 : -cオプションでシンタックスをチェックする
6. ENV HELLO_PORT="10000" HELLO_HOST="0.0.0.0"
- ENV : 環境変数を設定する。
7. EXPOSE 10000
- EXPOSE : 外部に公開するポートを指定する。
8. CMD perl6 -Ilib service.p6
- CMD : Docker run時に実行されるコマンド
終わりに
- -Ilibが不明
- 調べる時間が半分くらいPerl6にとられた。
- 興味のあることをするのがいいね。