リリース時にイメージをビルドしてプッシュする
リリースにタグを付けたとき、コンテナのビルドを自動化します。
「リリース時にイメージをビルドしてプッシュする」はCoddyKit上の無料MLOps Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMLOps Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 MLOps Academyコースには全4レッスンが含まれています。
リリース時だけビルドする
すべてのコミットでイメージをリリースするわけではありません。releaseステップでは、バージョンを準備完了として指定したときだけコンテナをビルドして公開します。📦
タグでトリガーする
よく使われる方法では、v1.2.0のようなgittagをpushしたときにビルドを開始します。何気ないpushではなく、意図的に指定したバージョンがデプロイを開始します。
on:
push:
tags: ["v*"]ビルドで生成されるもの
ビルドでは、モデルAPI、コード、依存関係を1つのimageにまとめます。これは、どのマシンでも同じように動作する、固定された実行可能なスナップショットです。
レジストリがイメージを保存する
GHCR、ECR、Docker Hubなどのコンテナregistryは、ビルドしたイメージを保存する場所です。後でどのサーバーからでもイメージをpullして実行できます。
シークレットでログインする
pushする前に、ワークフローは保存済みのsecretを使ってレジストリにログインします。ハードコードしたパスワードは使わないため、認証情報をコードから遠ざけられます。
- uses: docker/login-action@v3
with:
password: ${{ secrets.REGISTRY_TOKEN }}イメージに適切なタグを付ける
リリースバージョンに対応する明確なtagをイメージに付けます。latestだけを使い回すと、どのビルドが実行されているのか判別できません。
myorg/model-api:v1.2.01つのアクションでビルドとpushを行う
公式のDockerbuild-pushアクションを使うと、Dockerfileをビルドし、結果を1つのステップでレジストリにアップロードできます。
- uses: docker/build-push-action@v6
with:
push: true
tags: myorg/model-api:v1.2.0latestではなくバージョンを固定する
v1.2.0のようなpinnedタグをデプロイすれば、現在稼働しているモデルとコードを正確に把握でき、以前のタグにもすぐにロールバックできます。
レイヤーをキャッシュして高速化する
イメージのビルドでは、変更されていないlayersをキャッシュから再利用するため、実際に変更した部分だけが再ビルドされます。これにより、リリースビルドを高速に保てます。
デプロイでイメージをpullする
pushが完了すると、実行環境はタグ付きイメージをpullして起動します。テストしたものとまったく同じ成果物が、1バイトも変わらず本番稼働します。
docker pull myorg/model-api:v1.2.0リリースノートで流れを完成させる
イメージのタグを、変更内容を記載したGitHubのreleaseに関連付けます。これで、稼働中のコンテナから正確なコードとモデルまで誰でもたどれるようになります。
理解度チェック
リリースしたイメージにlatestだけでなくバージョンのタグを付けるのはなぜですか?
復習
バージョンtagを付けたら、secretでログインし、イメージをビルドして、固定したタグでレジストリにpushします。実行環境はその正確な成果物をpullして本番稼働させます。
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「リリース時にイメージをビルドしてプッシュする」レッスンは無料ですか?
はい。「リリース時にイメージをビルドしてプッシュする」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、MLOps Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 MLOps Academyコースには全4レッスンが含まれています。
「リリース時にイメージをビルドしてプッシュする」で何を学びますか?
リリースにタグを付けたとき、コンテナのビルドを自動化します。 ブラウザで直接実行するハンズオンコードでMLOps Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
MLOps Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのMLOps Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「リリース時にイメージをビルドしてプッシュする」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このMLOps Academyレッスンでコードを書いて実行できますか?
はい。すべてのMLOps Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- モデルにおけるCI/CDとは
- ML向けのGitHub Actionsワークフロー
- モデル品質をマージの条件にする
- リリース時にイメージをビルドしてプッシュする