dockerhubとgithubの連携
GitHubにpushしたらDockerイメージを自動ビルドする のように設定。
tagにマッチする正規表現
{\1}
/^(v?[0-9.]+)$/
shellscriptの用意とcron設定
下記のshellscriptを用意
archlinux_build_monthly.cron.sh
#!/bin/sh
#
# Build Dockerfile base/archlinux:{tagname}
# on dockerhub by pushing github
DIR=$(dirname "$0")
TAG="$(date -d '1 month ago' +%Y.%m.01)"
# Checkout
cd ${DIR}
git checkout master
# Modify
sed -i -e "s/latest/${TAG}/" Dockerfile
git commit -am "base version ${TAG}"
git tag ${TAG}
git push origin "${TAG}"
# Return
git reset --hard HEAD~
スクリプトの実行権限を与えておきます。
実行権限付与
$ chmod 766 archlinux_build_monthly.cron.sh
# m h dom mon dow command
* * 2 * * bash -c "${HOME}/Dropbox/Program/Dockerfiles/docker_archlinux_env/archlinux_build_monthly.cron.sh"
毎月2日に上記のshellスクリプトを実行して、先月のタグでビルドされたベースイメージを元にビルドされる仕組み.
reset --hardで書き換える前のmasterに戻している。
branchの分かれ方が愉快になっている(1~6行目まで)。
masterからすべて枝分かれしていくのかー。
今後のtreeの成長の仕方が楽しみ。
* d08cbd1 54 minutes ago base version 2018.04.01 (tag: 2018.04.01)
| * 7720cbe 55 minutes ago base version 2018.05.01 (tag: 2018.05.01)
|/
| * f307201 60 minutes ago base version 2018.06.01 (tag: 2018.06.01)
|/
* 8f7a178 64 minutes ago base version latest (HEAD -> master)
* 064144e 64 minutes ago base version 2018.07.01 (tag: 2018.07.01)
* 6a61b67 80 minutes ago base version latest
* 8b1a006 80 minutes ago base version 2019.02.01 (tag: 2019.02.01)
| * 2d0046c 2 hours ago [add] cron command (develop)
* | 99e40ce 2 hours ago base version latest
* | e051ecc 2 hours ago base version 2018.08.01 (tag: 2018.08.01)
* | 47b428c 2 hours ago base version latest
* | 8371f78 2 hours ago base version 2018.09.01 (tag: 2018.09.01)
* | 8796eb6 2 hours ago base version latest
* | bff56d2 2 hours ago base version 2018.10.01 (tag: 2018.10.01)
* | 0f31acb 2 hours ago base version latest
* | 8832df7 2 hours ago base version 2018.11.01 (tag: 2018.11.01)
* | dc117be 3 hours ago base version 2018.12.01 (tag: 2018.12.01)
docker hubはこちら
u1and0/archlinux