2020年12月14日月曜日

[DockerHub] AutomatedBuild でバージョンタグを自動でつける

DockerHub のイメージを見てるとタグがいっぱいついてるリポジトリがありますよね。
あとは latest が最新バージョンのタグと同じになってたり、Ubuntu の xeinal -> 16.04 みたいに名前付けされてたり、バージョンがメジャー、マイナーまでになっていてそのバージョンの最新を指していたり(例: v1 -> v1.3 -> v1.3.2)、とか。



こういうのを AutomatedBuild 管理するのは面倒くさそうだなと思ってましたが、そんなことはありませんでした。

hooks で AutomatedBuild をカスタマイズできる
DockerHub AutomatedBuild では Dockerfile と同じディレクトリに hooks ディレクトリを作成し、post_build や post_push ファイルを配置することでビルドをカスタマイズできます。カスタマイズできるポイントは↑の公式ドキュメントを参照してください。

post_build や post_push では bash スクリプトを書くことができ、docker コマンドも使用できます。ビルドしたイメージを実行したり、AutomatedBuild で設定したタグ以外をつけたりできます。

バージョンタグを自動でつける
post_build のタイミングでビルド済みのイメージを実行し、バージョンを取得すればタグ付けが自動化できます。
 
#!/bin/bash
# post_build
VERSION=$(docker run --rm ${IMAGE_NAME} --version)
docker tag ${IMAGE_NAME} ${DOCKER_REPO}:${VERSION}
docker push ${DOCKER_REPO}:${VERSION}
最後に
とあるツールをインストールした Docker イメージを作ることがちょくちょくありますが、ここれからは hooks 使って管理楽ちんにしたいと思います。

ではでは。

0 件のコメント:

コメントを投稿