Crescendo Lab ドキュメント デプロイ
日本語
無料で始める

Docker イメージをプッシュしてデプロイする

agentlab CLI(アルファ版)をインストールしてサインインし、linux/amd64 のイメージを docker push で組織のレジストリにプッシュして、プロジェクトのバージョンとしてデプロイします。有料プランのみ。

最終更新

始める前に#

  • Pro、Team、Business のいずれかのプラン。Free プランにはイメージレジストリがありません。ソースコードからまたはDockerfile からデプロイしてください。
  • デプロイできるロール。
  • Docker と、CLI 用の Node.js 24 以降。CLI は macOS、Linux、Windows の x64 と arm64 で動きます。

1. CLI をインストールする#

sh
npm install --global @crescendolab/agentlab-cli@alpha
agentlab --version

CLI はアルファ版です

安定版が出るまで、コマンドや動作が変わることがあります。上のとおり alpha タグでインストールしてください。

Windows ではパッケージのインストールスクリプトを許可してください。docker-credential-agentlab.exe が npm のコマンド用ファイルの隣に置かれ、Docker から見つけられるようになります。

2. サインインして Docker を設定する#

sh
agentlab login
agentlab auth configure-docker
agentlab status

agentlab login でブラウザが開くので、サインインして組織を選びます。agentlab auth configure-docker は Agent Lab の認証ヘルパーを Docker の設定に追加し、docker push があなたとしてサインインするようにします。docker login は不要です。agentlab status はアカウント、組織、サインインの有効期限を表示します。

1 回のサインインは 1 つの組織に対応します。組織を切り替えるには agentlab login をもう一度実行します。

3. ビルドしてプッシュする#

イメージのパスは registry.agentlab.cresclab.com/<組織 id>/<名前>:<タグ> です。組織 id は UUID で、イメージレジストリ › 設定手順 に表示されるコマンドには入力済みです。

sh
docker build --platform linux/amd64 -t registry.agentlab.cresclab.com/<組織 id>/orders-api:v1 .
docker push registry.agentlab.cresclab.com/<組織 id>/orders-api:v1

linux/amd64 でビルドしてください。他のプラットフォームのイメージはプッシュ時に拒否されます。Apple シリコンの Mac では --platform linux/amd64 が必須です。

プッシュ後、イメージはコンテナ実行規約に照らしてチェックされ、スキャンがオンなら脆弱性もスキャンされます。チェック は チェック中 のあと、合格、警告あり、拒否 のいずれかになります。プッシュしただけでは公開中のバージョンは変わりません。

4. イメージをデプロイする#

  1. プロジェクトの「デプロイ」タブを開き、新しいバージョンのデプロイ元 で イメージ を選びます。
  2. リポジトリ と タグまたは digest を選び、イメージをデプロイ を選びます。

イメージレジストリ でリポジトリを開き、プロジェクトにデプロイ を使うこともできます。

バージョンを作る時点でタグは digest に解決されるため、あとで同じタグをプッシュしてもそのバージョンは変わりません。環境が本番環境だけなら、チェックに合格したバージョンは自動で公開されます。複数の環境がある場合は「デプロイ」タブで公開のタイミングを選びます(バージョン)。拒否されたイメージはデプロイできません。警告あり のイメージは誰かの確認を待ちます。

CI からプッシュする#

CI では CLI の代わりにロボットトークンを使います。オーナーか管理者が デプロイ設定 › ロボットトークン で作成します。トークンは一度しか表示されません。プッシュしかできず、作成した人ではなく組織に属します。

sh
echo "$AGENTLAB_ROBOT_TOKEN" | docker login registry.agentlab.cresclab.com -u agentlab --password-stdin
docker push registry.agentlab.cresclab.com/<組織 id>/orders-api:$GIT_SHA

ユーザー名はチェックされません。取り消しも同じ場所で行います。

イメージが満たすべきルール#

プッシュしたイメージにも、Dockerfile からビルドしたイメージにも同じルールが適用されます。全体はコンテナ実行規約をご覧ください。

ルール要件
プラットフォームlinux/amd64 のみ。
起動コマンドCMD または ENTRYPOINT。
ポート$PORT で HTTP を提供。ポートはプロジェクトのポート設定、なければイメージが EXPOSE する 1 つのポート、なければ 8080。
ユーザーroot 以外の USER を推奨。root や USER なしの場合は uid 10001、グループ 0 で実行。
ファイルシステム/tmp 以外は読み取り専用。
サイズ2.5 GiB まで。

保持されるもの#

  • リポジトリごとに 5 バージョン。プッシュやビルドで 6 つ目が来ると、使われていない最も古いイメージが削除されます。公開中のもの、プロジェクトの直近 5 バージョンに含まれるもの、スケジュールジョブが実行するものは使用中とみなされます。リポジトリのイメージがすべて使用中なら、プッシュは拒否されます。
  • プランごとのストレージ:Pro 50 GB、Team 250 GB、Business は契約によります。
  • プッシュしたイメージの脆弱性スキャンは Team と Business で使え、既定はオフです。デプロイ設定 で プッシュしたイメージをスキャン をオンにします。
  • ソースコードからビルドしたプロジェクトのイメージもここに、プロジェクト名のリポジトリとして保存されます。
  • イメージレジストリ から、イメージやリポジトリ全体を削除できます(管理者のみ)。使用中のイメージは削除できません。
  • プルはできません。レジストリはデプロイ用のプッシュだけを受け付け、docker pull は拒否されます。

CLI コマンド#

コマンド内容
agentlab login [--org <uuid>]ブラウザでサインインします。--org で組織をあらかじめ選べます。
agentlab auth configure-dockerDocker がレジストリに Agent Lab の認証ヘルパーを使うよう設定します。
agentlab status [--json]サインイン中のアカウント、組織、サインインの有効期限。
agentlab logoutサインアウトし、このコンピューターのサインイン情報とレジストリ認証情報を削除します。
  • サインイン情報は OS のキーチェーンに、キーチェーンがない場合は ~/.config/agentlab/credentials.json(権限 0600)に保存されます。
  • オーナーと管理者は デプロイ設定 で agentlab CLI でのサインインを許可 をオフにできます。サインイン済みの CLI もほどなく使えなくなります。サインイン済みの CLI にすべてのサインインが表示され、それぞれ サインインを取り消す ことができます。
  • CLI を削除するには、agentlab logout のあと npm uninstall --global @crescendolab/agentlab-cli を実行します。

プッシュに失敗したとき#

表示原因と対処
unauthorizedagentlab login をもう一度実行します。以前このレジストリに docker login したことがあると、Docker はそちらを先に使います:docker logout registry.agentlab.cresclab.com。
プランに触れた deniedプランにイメージレジストリがないか、ストレージがいっぱいです。オーナーか管理者が 設定 › プランとお支払い でアップグレードできます。
プラットフォームに触れた deniedイメージが linux/amd64 ではありません。--platform linux/amd64 を付けてビルドし直します。
バージョン上限に触れた deniedリポジトリのイメージがすべて使用中です。先に新しいバージョンをデプロイするか、新しいリポジトリにプッシュします。
プッシュ後に 拒否イメージが上のルールに反しています。チェック結果にどのルールかが表示されます。