この記事は1年以上前に書かれたものです。
情報が古い可能性があります。
テキトーな Dockerfile 眺めて気になったところメモ。
RUN の最初にある set -x
RUN set -x \ && apt-get update \ .....
なんやったっけ?と思った。
RUN の文脈だとパッとわからなかったが、単に set コマンドの -x だった。デバッグ用に実行コマンドを表示するコマンドですね。set +x で表示しないようになります。
e オプションがついてる場合もあります。
エラーがあったらスクリプトをそこで止めてくれるオプションです。
Linux のちしきがたりない!!!!
次
rm -rf /var/lib/apt/lists/*
まぁよく出てくる rm コマンド。そもそも /var/lib/apt/lists/* って何かというと、apt update したときに apt が /etc/apt/sources.list にある URL からとってきたパッケージのインデックスを保存しているところ。
apt-get purge -y --auto-remove \ rm -rf /var/lib/apt/lists/*
だいたいこんな感じで RUN の最後のほうに書いてある。
手元のやつだと 133M もあったし、消しても apt update 実行すればいいだけなので、ポイしてるみたい。
savedAptMark=“$(apt-mark showmanual)”
依存関係の処理らしきもの。apt-mark showmanual で手動でインストールしたパッケージの一覧を取得します。build の依存関係を消し去るためかなぁと思ってます。中がどうなってるのかよくわかりません。
apt purge -y –auto-remove には
-o APT::AutoRemove::RecommendsImportant=false;
とかがついてることもあるみたいです。
savedAptMark="$(apt-mark showmanual)" \ && apt-get update \ && apt-get install ...... .... && apt-mark showmanual | xargs apt-mark auto > /dev/null \ && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; } \ .... && apt-get purge -y --auto-remove ○○○○ && rm -rf /var/lib/apt/lists/*;
眠いから今日はこれくらい。docker-compose 調べるはずが脇道それたw
コメント