Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

Heroku Container Registry and Runtime の他の人が作ったdockerfileの読解

概要

dockerfileの書き方をいまいち理解してないので、読解してみる。最終的にdjangoでdeploy予定なので、それに近いflaskでやっている方の記事を参考にしてみました。

参照サイト

qiita.com

qiita.com

読解

記事からそのまま転用しています。

image_clock/
    ├ static/
    ├ templates/
    ├ Dockerfile
    ├ app.py
    └ requirements.txt
# Pythonが入ったAlpine Linuxをベースイメージに使用
FROM python:3.5.2-alpine # FROM = ベースイメージを指定

# gitのインストール
RUN apk update # apk update (yum, apt-get updateみたいなもの?)
RUN apk add git # apk add git (gitを追加する。多分後で、githubからcloneして来るため?)

# Pythonのパッケージインストール
ADD requirements.txt /tmp # localのrequirements.txt をcontainerの、tmpフォルダにコピペする
RUN pip install -r /tmp/requirements.txt # requirementsのpip installする。

# ソースコードを配置
WORKDIR /web # cd でweb フォルダに移動する。デフォルトでcontainerにあるのか、push web の時に作られるかは不明。これもwebフォルダでなくてもいいのかもしれんな。
RUN git clone https://github.com/nanakenashi/image_clock.git clock # git clone してきて、さっき移動してきたwebフォルダ内に、展開する。

# flaskアプリケーションの起動
ENV FLASK_APP /web/clock/app.py # ENV=環境変数の設定。FLASK_APPに、/web/clock/app.pyを代入している。この辺は、正直よくわからん。clockのフォルダはどこから出てきたんだ。でもこれはflaskの設定なのかも知んない。
CMD flask run -h 0.0.0.0 -p $PORT # flaskを実行する。多分、さっきのFLASK_APPはここで使われているんじゃないかな。

ちょっとdjangoの場合にどうなるかも調べないとな。