---
title: push อิมเมจ Docker แล้วดีพลอย
description: ติดตั้งและลงชื่อเข้าใช้ agentlab CLI (alpha) แล้ว docker push อิมเมจ linux/amd64 ไปยังรีจิสทรีขององค์กร และดีพลอยเป็นเวอร์ชันของโปรเจกต์ เฉพาะแพ็กเกจชำระเงิน
url: https://agentlab.cresclab.com/docs/th/deploy/registry
language: th
updated: 2026-10-28
---

# push อิมเมจ Docker แล้วดีพลอย

ติดตั้งและลงชื่อเข้าใช้ agentlab CLI (alpha) แล้ว docker push อิมเมจ linux/amd64 ไปยังรีจิสทรีขององค์กร และดีพลอยเป็นเวอร์ชันของโปรเจกต์ เฉพาะแพ็กเกจชำระเงิน

## ก่อนเริ่มต้น

- แพ็กเกจ Pro, Team หรือ Business แพ็กเกจ Free ไม่มีรีจิสทรีอิมเมจ ให้ดีพลอย[จากซอร์สโค้ด](https://agentlab.cresclab.com/docs/th/deploy/source-build.md)หรือ[จาก Dockerfile](https://agentlab.cresclab.com/docs/th/deploy/container-app.md)แทน
- บทบาทที่ดีพลอยได้
- Docker และ Node.js 24 ขึ้นไปสำหรับ CLI CLI ทำงานบน macOS, Linux และ Windows ทั้ง x64 และ arm64

## 1. ติดตั้ง CLI

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

> [!WARNING] CLI ยังเป็นรุ่น alpha
> คำสั่งและการทำงานอาจเปลี่ยนก่อนออกรุ่นเสถียร ให้ติดตั้งด้วยแท็ก `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` แสดงบัญชี องค์กร และเวลาที่การลงชื่อเข้าใช้หมดอายุ

การลงชื่อเข้าใช้หนึ่งครั้งใช้กับองค์กรเดียว หากต้องการเปลี่ยนองค์กร ให้รัน `agentlab login` อีกครั้ง

## 3. บิลด์และ push

พาธของอิมเมจคือ `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` อิมเมจของแพลตฟอร์มอื่นจะถูกปฏิเสธตอน push บน Mac ที่ใช้ชิป Apple ต้องใส่ `--platform linux/amd64`

หลัง push อิมเมจจะถูกตรวจตาม[ข้อกำหนดการรันคอนเทนเนอร์](https://agentlab.cresclab.com/docs/th/deploy/runtime-contract.md) และสแกนหาช่องโหว่ถ้าเปิดการสแกนไว้ **การตรวจสอบ** จะแสดง **กำลังตรวจสอบ** แล้วเป็น **ผ่าน** **มีคำเตือน** หรือ **ถูกปฏิเสธ** การ push ไม่เปลี่ยนเวอร์ชันที่เผยแพร่อยู่

## 4. ดีพลอยอิมเมจ

1. เปิดแท็บ **ดีพลอย** ของโปรเจกต์ ใน **ดีพลอยเวอร์ชันใหม่จาก** ให้เลือก **อิมเมจ**
2. เลือก **ที่เก็บ** และ **แท็กหรือ digest** แล้วเลือก **deploy อิมเมจ**

หรือเปิดที่เก็บจาก **รีจิสทรีอิมเมจ** แล้วใช้ **ดีพลอยไปที่โปรเจกต์**

แท็กจะถูกแปลงเป็น digest ตอนสร้างเวอร์ชัน การ push แท็กเดิมอีกครั้งภายหลังจึงไม่เปลี่ยนเวอร์ชันนั้น ถ้ามีเพียงสภาพแวดล้อมจริง (production) เวอร์ชันจะเผยแพร่เองเมื่อผ่านการตรวจสอบ ถ้ามีหลายสภาพแวดล้อม คุณเลือกเวลาเผยแพร่ในแท็บ **ดีพลอย** ([เวอร์ชัน](https://agentlab.cresclab.com/docs/th/deploy/versions.md)) อิมเมจที่ถูกปฏิเสธดีพลอยไม่ได้ ส่วนอิมเมจที่ **มีคำเตือน** ต้องรอให้มีคนยืนยัน

## push จาก CI

ใน CI ให้ใช้ robot token แทน CLI เจ้าของหรือผู้ดูแลสร้างได้ที่ **การตั้งค่าการดีพลอย** › **Robot token** token แสดงเพียงครั้งเดียว ใช้ได้เฉพาะ push และเป็นขององค์กร ไม่ใช่ของคนที่สร้าง

```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
```

ระบบไม่ตรวจชื่อผู้ใช้ เพิกถอน token ได้ที่เดียวกัน

## สิ่งที่อิมเมจต้องทำ

อิมเมจที่ push และอิมเมจที่บิลด์จาก Dockerfile ใช้กฎเดียวกัน รายการทั้งหมดอยู่ใน[ข้อกำหนดการรันคอนเทนเนอร์](https://agentlab.cresclab.com/docs/th/deploy/runtime-contract.md)

| กฎ             | ข้อกำหนด                                                                                                                 |
| -------------- | ------------------------------------------------------------------------------------------------------------------------ |
| แพลตฟอร์ม      | `linux/amd64` เท่านั้น                                                                                                   |
| คำสั่งเริ่มต้น | มี `CMD` หรือ `ENTRYPOINT`                                                                                               |
| พอร์ต          | ให้บริการ HTTP ที่ `$PORT` พอร์ตมาจากการตั้งค่าพอร์ตของโปรเจกต์ ถ้าไม่มีใช้พอร์ตเดียวที่อิมเมจ `EXPOSE` ถ้าไม่มีใช้ 8080 |
| ผู้ใช้         | แนะนำ `USER` ที่ไม่ใช่ root ถ้าเป็น root หรือไม่มี `USER` จะรันเป็น uid 10001 กลุ่ม 0                                    |
| ระบบไฟล์       | อ่านอย่างเดียว ยกเว้น `/tmp`                                                                                             |
| ขนาด           | ไม่เกิน 2.5 GiB                                                                                                          |

## สิ่งที่เก็บไว้

- **ที่เก็บละ 5 เวอร์ชัน** เมื่อการ push หรือบิลด์ทำให้มีเวอร์ชันที่ 6 อิมเมจที่เก่าที่สุดซึ่งไม่มีอะไรใช้จะถูกลบ อิมเมจถือว่าใช้อยู่เมื่อกำลังเผยแพร่ อยู่ใน 5 เวอร์ชันล่าสุดของโปรเจกต์ หรือถูกงานตามกำหนดเวลาใช้ ถ้าทุกอิมเมจในที่เก็บถูกใช้อยู่ การ push จะถูกปฏิเสธ
- **พื้นที่จัดเก็บตามแพ็กเกจ:** Pro 50 GB, Team 250 GB, Business ตามสัญญา
- **การสแกนช่องโหว่ของอิมเมจที่ push** มีใน Team และ Business ปิดเป็นค่าเริ่มต้น เปิด **สแกนอิมเมจที่ push** ใน **การตั้งค่าการดีพลอย**
- **โปรเจกต์ที่บิลด์จากซอร์สโค้ด** ก็เก็บอิมเมจไว้ที่นี่ ในที่เก็บที่ตั้งชื่อตามโปรเจกต์
- **ลบ** อิมเมจหรือทั้งที่เก็บได้จาก **รีจิสทรีอิมเมจ** (เฉพาะผู้ดูแล) อิมเมจที่ใช้อยู่ลบไม่ได้
- **ไม่รองรับการ pull** รีจิสทรีรับเฉพาะการ push เพื่อดีพลอย `docker pull` จะถูกปฏิเสธ

## คำสั่ง CLI

| คำสั่ง                           | ทำอะไร                                                                     |
| -------------------------------- | -------------------------------------------------------------------------- |
| `agentlab login [--org <uuid>]`  | ลงชื่อเข้าใช้ผ่านเบราว์เซอร์ `--org` เลือกองค์กรไว้ล่วงหน้า                |
| `agentlab auth configure-docker` | ให้ Docker ใช้ตัวช่วยข้อมูลรับรองของ Agent Lab กับรีจิสทรี                 |
| `agentlab status [--json]`       | บัญชีที่ลงชื่อเข้าใช้ องค์กร และเวลาที่การลงชื่อเข้าใช้หมดอายุ             |
| `agentlab logout`                | ออกจากระบบ และลบการลงชื่อเข้าใช้กับข้อมูลรับรองรีจิสทรีที่เก็บในเครื่องนี้ |

- การลงชื่อเข้าใช้ถูกเก็บใน keychain ของระบบ หรือใน `~/.config/agentlab/credentials.json` (สิทธิ์ `0600`) เมื่อไม่มี keychain
- เจ้าของและผู้ดูแลปิด **อนุญาตให้ลงชื่อเข้าใช้ด้วย agentlab CLI** ได้ใน **การตั้งค่าการดีพลอย** แล้ว CLI ที่ลงชื่อเข้าใช้อยู่จะหยุดทำงานในไม่ช้า **CLI ที่ลงชื่อเข้าใช้อยู่** แสดงทุกการลงชื่อเข้าใช้ พร้อม **เพิกถอนการลงชื่อเข้าใช้** ของแต่ละรายการ
- ถอนการติดตั้ง CLI: `agentlab logout` แล้ว `npm uninstall --global @crescendolab/agentlab-cli`

## เมื่อ push ไม่สำเร็จ

| สิ่งที่เห็น                        | สาเหตุและวิธีแก้                                                                                                                              |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `unauthorized`                     | รัน `agentlab login` อีกครั้ง ถ้าเคย `docker login` กับรีจิสทรีนี้ Docker จะใช้ข้อมูลนั้นก่อน: `docker logout registry.agentlab.cresclab.com` |
| `denied` ที่พูดถึงแพ็กเกจ          | แพ็กเกจไม่มีรีจิสทรีอิมเมจ หรือพื้นที่จัดเก็บเต็ม เจ้าของหรือผู้ดูแลอัปเกรดได้ที่ **การตั้งค่า › แพ็กเกจและการชำระเงิน**                      |
| `denied` ที่พูดถึงแพลตฟอร์ม        | อิมเมจไม่ใช่ `linux/amd64` บิลด์ใหม่ด้วย `--platform linux/amd64`                                                                             |
| `denied` ที่พูดถึงขีดจำกัดเวอร์ชัน | ทุกอิมเมจในที่เก็บถูกใช้อยู่ ดีพลอยเวอร์ชันที่ใหม่กว่าก่อน หรือ push ไปที่เก็บใหม่                                                            |
| **ถูกปฏิเสธ** หลัง push            | อิมเมจผิดกฎข้อใดข้อหนึ่งด้านบน ผลการตรวจสอบจะบอกว่าข้อไหน                                                                                     |
