GitHub Packages で Docker imageを公開する
概要
Docker Imageを GitHub Packages Container registry (GPCR) に公開
レポジトリ
Build
GitHubでtagがpublishをフックにして、GitHub Actionsにより、自動的にGPCRに公開されます。
on:
push:
tags:
- '*'
Docker imageのタグ名は latestとtag名です。
VERSION=$(echo ${{ github.ref }} | sed -e "s#refs/tags/##g")
ref .github/workflows/deploy.yml
Pull
GCPRに公開されたimageは、docker コマンドでpullできます。
Docker公式のレポジトリに公開している場合との違いは、冒頭に ghcr.io
をつける事です。
docker image pull ghcr.io/junara/docker_echo_hello:latest
ref. 名前によるプル
Test image
Pullしたimageは下記で動作確認できます。
echoの出力 We love rabbits !
が出れば成功です。
docker container create --name docker_echo_hello ghcr.io/junara/docker_echo_hello
docker container start -i docker_echo_hello
# We love rabbits !
containerとimageの削除
containerを削除する
docker container rm docker_echo_hello
# docker_echo_hello
imageを削除する
docker image rm ghcr.io/junara/docker_echo_hello
containerとimageが削除されたことを確認する。
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
おまけ
ローカルでbuildする
リポジトリをクローンしてきて、ビルドする。
git clone [email protected]:junara/docker_echo_hello.git
docker image build . -t docker_echo_hello
imageが作られたことを確認する。
docker image ls
# REPOSITORY TAG IMAGE ID CREATED SIZE
# docker_echo_hello latest 263ac394977b 5 days ago 1.24MB
containerを作る
docker container create --name docker_echo_hello docker_echo_hello
docker container start -i docker_echo_hello
# We love rabbits !
We love rabbits !
がでれば成功。
containerとimageを削除して片付ける。
docker container rm docker_echo_hello
docker image rm docker_echo_hello
private公開する場合
privateで公開することができます。すなわち、制限されたユーザーのみがimageをダウンロードできるようにできます。
ダウンロードするためには、personal access tokenを発行して事前にログインをすればよいです。
Personal access token の発行
GitHubのsettingからできます。
画面に表示されたtokenをメモします。以下のログインをする
でつかいます。
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
(現在は無効にしています。)
ログインをする
こちらを参考にしました。 https://docs.github.com/ja/packages/working-with-a-github-packages-registry/working-with-the-container-registry
#{YOUR_GITHUB_PAT}
は、Personal access token の発行
で発行したtokenをつかいます。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
export CR_PAT=#{YOUR_GITHUB_PAT}
echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
tokenをあてはめるとexport CR_PAT=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
こんなかんじ。
imageをpullする
docker image pull ghcr.io/junara/docker_echo_hello:latest
あとは、上述と同様です。
ログアウトする
下記でログアウトできます。
docker logout ghcr.io
Author And Source
この問題について(GitHub Packages で Docker imageを公開する), 我々は、より多くの情報をここで見つけました https://zenn.dev/junara/articles/9cca5b6e37fa85著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol