GitHub Packages で公開する

docker login

まずレジストリが使えるようにhttps://docker.pkg.github.com/へのログインが必要ですが、この時にwrite:packagesを許可したアクセストークンが必要になるので、まずそれを取得します。

用意できたら以下のようなCLIからログインします。(<...>は適当なものに書き換えてください)

docker login docker.pkg.github.com --username <github-user-name> --password <access-token>
# 上では警告がでるかも
# cat password-file | docker login docker.pkg.github.com --username <github-user-name> --password-stdin

タグ付け

まずdocker images時に<user-name>/hello-worldという自作Dockerイメージがあるとします。

その状態で、docker.pkg.github.compushする用のタグを付けてあげます。<package-name>push後パッケージ名となるものです。今は<package-name>appと指定して実行してみます。

docker tag <user-name>/hello-world docker.pkg.github.com/<github-user-name>/<repository-name>/<package-name>:1.0

# 今回は以下で試してみる
docker tag <user-name>/hello-world docker.pkg.github.com/<github-user-name>/<repository-name>/app:1.0

公開

上で作ったタグをpushするだけです。

docker push docker.pkg.github.com/<github-user-name>/<repository-name>/app:1.0
# The push refers to repository [docker.pkg.github.com/<github-user-name>/<repository-name>/app]
# 006d3faadc77: Pushed
# f74cd803d60f: Pushed
# 2af6f58893e9: Pushed
# 414e34102ae8: Pushed
# 7dcca1b6d2c7: Pushed
# 1a86ff1d449f: Pushed
# f1b5933fe4b5: Pushed
# ...

うまく行っていればリポジトリのナビゲーション

から今pushしたものがあると思います。

使いたい場合はpushした名前で持ってくるだけです。

docker pull docker.pkg.github.com/<github-user-name>/<repository-name>/app:1.0