2021年3月18日木曜日

PyPI のリリースを検知して Dockerhub の image を更新する

3rd party の PyPI パッケージのリリースがあったら、自動で Dockerhub のビルドをキックして、latest の更新とバージョンのタグ付けをするパイプラインを構築しました。

できたのはこちら。
https://hub.docker.com/r/srzzumix/lizard
パイプライン
PyPI release の RSS を使い、RPA(Integromat) で定期的に読み取り、更新があったら Dockerhub のビルドトリガー URL を POST します。

Dockerhub のビルドができたら、出来上がったイメージからバージョンを取得してタグ付けをしています。
Dockerhub のビルドでは Dockerfile と同じ階層にある hooks ディレクトリに build や post_push などの shell ファイルを置くことで処理をカスタマイズできるので、post_push でタグ付けするようにしています。
#!/bin/bash
set -eu

if [ "${DOCKER_TAG}" = "latest" ]; then
  LIZARD_VERSION=$(docker run --rm ${IMAGE_NAME} --version)
  docker tag ${IMAGE_NAME} ${DOCKER_REPO}:${LIZARD_VERSION}
  docker push ${DOCKER_REPO}:${LIZARD_VERSION}
fi

これでパイプラインは完成です。

今回は以上です。では。

0 件のコメント:

コメントを投稿