Dockerfile
The docker build command builds an image from a Dockerfile and a context
dokerfileと(path or url)であるcontext
たぶん、versionがあがっても大きく変わらない
.dockerfileignore を利用する
不要なパッケージを(どうやって)避ける
プロセスを1つ PID 1問題もある
レイヤー数
複数行の引数を、アルファベット順などに
構築キャッシュ
dockefileからのimageを作成時には、各々の命令でキャッシュを作る?
キャッシュになる場合はどういうケースか?
An appalled silence fell over the room
KeyWord:
RUN
RUN lets you execute commands inside of your Docker image.
CMDとの違いを理解する。
RUN apt-get ...
upgrade, dist-upgradeを避ける
RUNを複数に分割。 => キャッシュ問題
CMD
to provide defaults for an executing container
配列でargsを並べる
RUNとの違いは?
CMDは、docker run ... runtime時のもの。
RUNは、docker build ... build時のもの。image layer を作る
引数を指定したい場合は、CMD
ENTRTYPOINT
ENTRYPOINT のベストな使い方は、イメージにおけるメインコマンドの設定です
LABEL
EXPOSE
container間の通信をする際にportを開ける?
ENV
ENTRYPOINT
CMD,RUNではだめなの?
エントリーポイントは、shell経由せずに実行される
VOLUME
mount?
USER
指定しないとroot,
指定するメリットは?
rootで実行するのに制限があるアプリは多い。
WORKDIR
通常は、/ になるが、WORKDIRで指定できる
RUN cd ... && 何らかの処理 のように増殖する命令の代わり使うことで、より読みやすく、
ARG
ONBUILD
STOPSIGNAL
HEALTHCHECK
Databaseやweb serverなどのcheckなどに使える
SHELL
その他
External implementation features
Dockerfile examples
.dockerignore file
build時に、無視するファイルを設定する。