LoginSignup
1
0

More than 5 years have passed since last update.

cronでDockerfileをauto buildする

Last updated at Posted at 2019-02-04

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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0