Imageをビルドする。CIを使用することで継続的に更新し続ける仕組みを作る。daichi703n/awscli後から再調査したところ、こちらの方も同じ目的でCircleCIによって自動ビルドを実装していた。Imageにも展開していきたい。※試験的な実装部分も多いため、改善点等ありましたらご指摘ください。Imageを使用する際に、できるだけ最新にしておきたい。パッケージだけでなく、ベースイメージも基本的に最新にしておきたい。Imageがいわゆる腐ってる状態で使えなくなるケースがある。Image自動更新の仕組みを作っておきたい。アーキテクチャ全体の構成は以下の通り。監視し、新しいリリースがあったら取り込んでビルド・テスト・プッシュする。alpine:latestConcourseでそれぞれ以下のresourceを使用して監視する。Pipelineはこちらgithub.comJob分割Concourseでは大きく3つのJobに分けてPipelineを実装した。tag)1つのJobの中でtaskを分けて同様実装も可能だが、パイプラインっぽさ重視で分けた。疎結合なので他への展開もしやすいはず。PyPI)を使用して新規バージョンのリリースを検知する。Image(develop)をビルドする。ImageをDockerHubにpushする。Testここを充実させるのが重要項目のひとつでもある。developとしてビルドしたイメージが期待通り動作することをテストする。して保証動作のテストをシェルスクリプトで作成する。テスト失敗時はここで終了し、latestは据え置きなので、自動・定常運用への影響は発生しない。awscliに関しては以下のテストを実装している。CommitTestがパスしたら、各種タグを設定しDockerHubにプッシュする。latestに関してはDockerHubとGitHubの連携による自動ビルドを使用する。resourceを使用して運用することもできるが、今回は手動(shellスクリプト)による実装とした。--build-argで設定している。使用して、versionsに書き出したバージョン記載ファイルから読み込むよう、Dockerビルドコマンドを上書きしている。Dockerの構成となる。Imageをビルド・テストするConcourseパイプラインを作成した。数日稼働させてみて正常に動作することを確認できている。これからも各種ツールの同様パイプラインを整備していきたい。※本記事の内容は古いです。(14)はてなブログをはじめよう!daichi703nさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。