Alpine LinuxベースでDockerイメージを作るときのapkのコマンドめも
Alpine LinuxベースでDockerイメージを作るとき、 apk add
でパッケージインストールする前に apk update
しないといけない。
# apk update # apk add vim
が、これは次のように一行で書ける。
# apk --update add vim
ただ、これは /var/cache/apk/
にキャッシュを生成する。
# ls -la /var/cache/apk/
.tar.gz
形式のファイルが生成されていることがわかる。
Dockerイメージは可能な限り小さくしたい(そもそもAlpineを使うモチベーションの一つがそれ)ので、 rm -rf /var/cache/apk/*
といった感じで削除するのが良い。
Alpineのバージョン3.3以降であれば、 --no-cache
オプションを使うことで、キャッシュを削除してくれる。
# apk --no-cache add vim # ls -la /var/cache/apk/
キャッシュがなくなっているはず。
また、Dockerイメージを小さくするときに重要なのは、 apk del
で作業後の不要なパッケージの削除。
apk add --virtual
を使うことで、まとめてインストールしたパッケージ群にエイリアスをつけることができ、 apk del alias
でパッケージ群をまとめて削除できる。
# apk info # apk --no-cache add --virtual=hoge-fuga curl php7 vim # apk info # apk del hoge-fuga # apk info
apk info
はインストール済みのパッケージが確認できるコマンド。
apk del hoge-fuga
としたあとは、インストールしたパッケージがすべてなくなっているはず。
あと apk del --purge
を使うと関連ファイルも一緒に削除してくれるらしい。