Dockerfileを書くときにaptとかyumでたくさんパッケージを入れるときがあるのだけど、後で見たときに「これ何だっけ?」「なんでこんなの入ってんだ?」となるとこが結構ある。
コメントを付けとけばいいのだけど、1コマンド内にコメントを入れるので小技が必要。意外にググってもすぐ出てこない。
だめな方法
RUN yum -y install \
shadow-utils # useraddすらできないので入れた \
util-linux # suすらできないので入れた \
passwd # パスワード変えたいよ \
sudo
最初これをやってしまいがちだが、これだと最初の#
以降全部コメントと見なされて2個目以降のパッケージが インストールされない。
いける方法
RUN yum -y install \
shadow-utils `# useraddすらできないので入れた` \
util-linux `# suすらできないので入れた` \
passwd `# パスワード変えたいよ` \
sudo
コメント部分をバッククォートで挟むとOK。
からくり: シングルクォートで囲むとその中のコマンドを実行して結果を置換するのだが、中がコメントなので空白に置換されるので元のコマンドに悪影響を与えない。なので何もしないコマンド:
でもOK。(e.g.: なにかのコメント
)