apkとは?
Dockerコンテナのベースイメージとして頻繁に使われているAlpine Linux用のパッケージマネージャが apk
です。 apt
や dnf
同様に、パッケージの追加や削除、アップグレードなどの操作を一通り行うことが可能です。
Alpine Linux package management - Alpine Linux
apkはコーヒーを淹れられることをご存知ですか?
apk
のヘルプを参照してみましょう。 docker run --rm -it alpine apk --help
で、直接確認することができます。結果が以下の通り:
結果
apk-tools 2.10.4, compiled for x86_64.
Installing and removing packages:
add Add PACKAGEs to 'world' and install
(or upgrade) them, while ensuring
that all dependencies are met
del Remove PACKAGEs from 'world' and
uninstall them
System maintenance:
fix Repair package or upgrade it without
modifying main dependencies
update Update repository indexes from all
remote repositories
upgrade Upgrade currently installed packages
to match repositories
cache Download missing PACKAGEs to cache
and/or delete unneeded files from
cache
Querying information about packages:
info Give detailed information about
PACKAGEs or repositories
list List packages by PATTERN and other
criteria
dot Generate graphviz graphs
policy Show repository policy for packages
Repository maintenance:
index Create repository index file from
FILEs
fetch Download PACKAGEs from global
repositories to a local directory
verify Verify package integrity and
signature
manifest Show checksums of package contents
Use apk <command> --help for command-specific help.
Use apk --help --verbose for a full command listing.
This apk has coffee making abilities.
このうち、最後の行を確認すると、
This apk has coffee making abilities.
ということで、 apk
はコーヒーを淹れる能力があるようです。
コーヒーを淹れさせるには?
ドキュメントを一通り読んだものの、イースターエッグなのでこれ以上の説明はありませんでした。そこで、 apk
のcli部分のソースコードリポジトリで検索した結果、 fetch
というサブコマンドで coffee
という引数を受け取ると特別な動作をしているようです。
やってみる
docker run --rm -it alpine apk fetch coffee
結果
Go and fetch your own coffee.
自分で淹れろ、と言われてしまいました。残念……。