---
title: Docker イメージをプッシュしてデプロイする
description: agentlab CLI（アルファ版）をインストールしてサインインし、linux/amd64 のイメージを docker push で組織のレジストリにプッシュして、プロジェクトのバージョンとしてデプロイします。有料プランのみ。
url: https://agentlab.cresclab.com/docs/ja/deploy/registry
language: ja
updated: 2026-10-28
---

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

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

## 始める前に

- Pro、Team、Business のいずれかのプラン。Free プランにはイメージレジストリがありません。[ソースコードから](https://agentlab.cresclab.com/docs/ja/deploy/source-build.md)または[Dockerfile から](https://agentlab.cresclab.com/docs/ja/deploy/container-app.md)デプロイしてください。
- デプロイできるロール。
- Docker と、CLI 用の Node.js 24 以降。CLI は macOS、Linux、Windows の x64 と arm64 で動きます。

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

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

> [!WARNING] 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` が必須です。

プッシュ後、イメージは[コンテナ実行規約](https://agentlab.cresclab.com/docs/ja/deploy/runtime-contract.md)に照らしてチェックされ、スキャンがオンなら脆弱性もスキャンされます。**チェック** は **チェック中** のあと、**合格**、**警告あり**、**拒否** のいずれかになります。プッシュしただけでは公開中のバージョンは変わりません。

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

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

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

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

## 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 からビルドしたイメージにも同じルールが適用されます。全体は[コンテナ実行規約](https://agentlab.cresclab.com/docs/ja/deploy/runtime-contract.md)をご覧ください。

| ルール           | 要件                                                                                                                     |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------ |
| プラットフォーム | `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-docker` | Docker がレジストリに 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` を実行します。

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

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