---
title: ข้อกำหนดการรันคอนเทนเนอร์
description: กฎที่อิมเมจของแอปคอนเทนเนอร์ต้องทำตาม ส่วนที่แพลตฟอร์มปรับได้จะปรับให้ และแสดงประกาศไว้ในหน้าเวอร์ชัน
url: https://agentlab.cresclab.com/docs/th/deploy/runtime-contract
language: th
updated: 2026-10-06
---

# ข้อกำหนดการรันคอนเทนเนอร์

กฎที่อิมเมจของแอปคอนเทนเนอร์ต้องทำตาม ส่วนที่แพลตฟอร์มปรับได้จะปรับให้ และแสดงประกาศไว้ในหน้าเวอร์ชัน

## กฎ

| รายการ             | ข้อกำหนด                           | ถ้าไม่เป็นไปตามข้อกำหนด                                                                                                      |
| ------------------ | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| คำสั่งเริ่มต้น     | ต้องมี `CMD` หรือ `ENTRYPOINT`     | เวอร์ชันถูกปฏิเสธ                                                                                                            |
| พอร์ต              | ให้บริการ HTTP ที่ `$PORT`         | เลือกตามลำดับ การตั้งค่า → `EXPOSE` → 8080 ดู[การตั้งค่าแอป](https://agentlab.cresclab.com/docs/th/deploy/app-settings.md#port) |
| แพลตฟอร์ม          | `linux/amd64`                      | การพุชอิมเมจแพลตฟอร์มอื่นถูกปฏิเสธ                                                                                           |
| ผู้ใช้             | แนะนำให้ตั้ง `USER` ที่ไม่ใช่ root | ถ้าเป็น root หรือไม่ได้ตั้ง จะรันด้วย uid 10001 กลุ่ม 0 ส่วน `USER` ที่ไม่มีในอิมเมจจะถูกปฏิเสธ                              |
| ระบบไฟล์           | อ่านอย่างเดียว ยกเว้น `/tmp`       | การเขียนที่อื่นจะล้มเหลว                                                                                                     |
| ข้อมูลรับรองคลาวด์ | แพลตฟอร์มไม่ได้ให้                 | ใช้ความลับของแอปเพื่อเชื่อมต่อบริการภายนอก                                                                                   |

เมื่ออิมเมจรันด้วย uid 10001 ไฟล์ที่อิมเมจอ่านต้องให้กลุ่ม 0 อ่านได้

## ประกาศ

สิ่งที่แพลตฟอร์มปรับจะแสดงเป็นประกาศในหน้าเวอร์ชันและแท็บ **ตรวจสอบ** ของอิมเมจ เครื่องมือ AI อ่านรหัสเดียวกันได้จากสถานะการดีพลอย

| รหัส                  | ความหมาย                                                                                    | สิ่งที่ต้องทำ                                                                                                                 |
| --------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `imageUserForced`     | อิมเมจรันด้วย root จึงเปลี่ยนไปรันด้วย uid 10001                                            | ไม่ต้องทำอะไร ถ้าต้องการให้ประกาศหายไป ให้ตั้ง `USER` ที่ไม่ใช่ root ใน Dockerfile                                            |
| `imagePortFromExpose` | แอปรอรับที่พอร์ตเดียวที่อิมเมจ `EXPOSE`                                                     | ไม่ต้องทำอะไร                                                                                                                 |
| `imagePortsAmbiguous` | อิมเมจ `EXPOSE` หลายพอร์ตและไม่มี 8080 จึงรันที่ 8080 ซึ่งมักไม่ใช่พอร์ตที่เซิร์ฟเวอร์รอรับ | เลือกพอร์ตที่ถูกต้องใน **ตั้งค่า › การตั้งค่าการทำงาน › พอร์ต** แล้วรีสตาร์ตบริการ หรือให้ Dockerfile `EXPOSE` เฉพาะพอร์ตนั้น |

## อิมเมจที่เขียนไฟล์ตอนเริ่มทำงาน

บางอิมเมจเขียนไฟล์นอก `/tmp` ตอนเริ่มทำงาน เช่น `nginx:alpine` เขียนที่ `/var/cache/nginx` จึงเริ่มไม่ได้บนระบบไฟล์แบบอ่านอย่างเดียว ให้ใช้อิมเมจที่ไม่ต้องเขียนไฟล์ หรือย้ายตำแหน่งที่เขียนไปที่ `/tmp`

```dockerfile Dockerfile
FROM nginxinc/nginx-unprivileged:alpine
COPY dist/ /usr/share/nginx/html/
```

> [!TIP] แค่ให้บริการไฟล์สแตติก?
> ให้[ดีพลอยเป็นเว็บไซต์แบบสแตติก](https://agentlab.cresclab.com/docs/th/deploy/static-site.md)แทน ไม่ต้องรัน nginx เอง
