Drone CI คืออะไร และวิธีติดตั้งบน Cloud Server
Drone CI คือระบบทดสอบและบิลด์อัตโนมัติที่รันทุกขั้นตอนในคอนเทนเนอร์ ทำให้สภาพแวดล้อมของแต่ละขั้นตอนสะอาดและทำซ้ำได้เสมอ โดยตั้งค่าทั้งหมดจากไฟล์เดียวในที่เก็บโค้ด
- หมวดหมู่
- DevOps และ CI/CD
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- Apache 2.0 พร้อมเงื่อนไขเชิงพาณิชย์บางกรณี
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Drone CI คืออะไร
ปัญหาที่พบบ่อยของระบบ CI แบบเดิมคือเครื่องบิลด์สะสมเครื่องมือและไลบรารีจนสภาพแวดล้อมต่างกันไปเรื่อย ๆ ทำให้เกิดอาการที่บิลด์ผ่านบนเครื่องหนึ่งแต่ไม่ผ่านบนอีกเครื่อง
Drone แก้ด้วยการรันทุกขั้นตอนในคอนเทนเนอร์ที่สร้างใหม่ทุกครั้ง สิ่งที่ขั้นตอนนั้นต้องใช้ถูกประกาศไว้ในไฟล์ตั้งค่า ผลลัพธ์จึงเหมือนกันทุกครั้งไม่ว่ารันที่ไหน
ไฟล์ตั้งค่าอยู่ในที่เก็บโค้ดเดียวกับโปรเจกต์ การเปลี่ยนไปป์ไลน์จึงผ่านการรีวิวเหมือนโค้ดทั่วไป และย้อนกลับได้เมื่อมีปัญหา
ความสามารถเด่นของ Drone CI
ทุกขั้นตอนรันในคอนเทนเนอร์
สภาพแวดล้อมสะอาดและทำซ้ำได้ทุกครั้ง
ตั้งค่าด้วยไฟล์เดียว
ไปป์ไลน์อยู่ในที่เก็บโค้ด จึงรีวิวและย้อนกลับได้เหมือนโค้ด
เชื่อมกับ Git ได้หลายระบบ
ทำงานร่วมกับ GitLab, Gitea, GitHub และอื่น ๆ
ขยายด้วยการเพิ่มเครื่องรันงาน
เพิ่ม Runner ได้เมื่องานบิลด์เยอะขึ้น
ระบบเบาและติดตั้งง่าย
ใช้ทรัพยากรน้อยกว่าระบบ CI ขนาดใหญ่หลายตัว
ใช้ Drone CI ทำอะไรได้บ้าง
- ทีมที่ต้องการระบบ CI ของตัวเองที่เบาและติดตั้งเร็ว
- โครงการที่ใช้คอนเทนเนอร์อยู่แล้วและอยากให้ CI สอดคล้องกัน
- องค์กรที่ใช้ Gitea หรือ GitLab ที่ติดตั้งเองและต้องการ CI แยก
- ทีมที่ต้องการให้ไปป์ไลน์อยู่ในโค้ดและตรวจสอบย้อนหลังได้
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นเซิร์ฟเวอร์กลางพร้อม Runner หนึ่งตัว | 2 vCPU | 4 GB | NVMe 60 GB |
| แนะนำหลายโครงการที่บิลด์ทุกวัน | 4 vCPU | 8 GB | NVMe 150 GB |
| ใช้งานหนักแยกเครื่อง Runner หลายตัวสำหรับงานบิลด์พร้อมกัน | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 300 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Drone CI บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Docker และ Docker Compose
- ระบบ Git ที่รองรับ เช่น Gitea หรือ GitLab
- โดเมนและใบรับรอง SSL
ทดสอบบน Ubuntu Server 24.04 LTS ที่ติดตั้ง Docker แล้ว
- 1
สร้างแอปในระบบ Git เพื่อเชื่อมต่อ
สร้าง OAuth Application ใน Gitea หรือ GitLab แล้วเก็บ Client ID กับ Secret ไว้ใช้ในขั้นตอนถัดไป
- 2
สร้างไฟล์ docker-compose.yml
services: drone: image: drone/drone:2 environment: DRONE_GITEA_SERVER: https://git.example.com DRONE_GITEA_CLIENT_ID: CHANGE_ME DRONE_GITEA_CLIENT_SECRET: CHANGE_ME DRONE_RPC_SECRET: PasteALongRandomStringHere DRONE_SERVER_HOST: ci.example.com DRONE_SERVER_PROTO: https volumes: - ./drone-data:/data ports: - "127.0.0.1:8080:80" restart: unless-stopped runner: image: drone/drone-runner-docker:1 environment: DRONE_RPC_HOST: drone DRONE_RPC_PROTO: http DRONE_RPC_SECRET: PasteALongRandomStringHere DRONE_RUNNER_CAPACITY: 2 volumes: - /var/run/docker.sock:/var/run/docker.sock restart: unless-stopped - 3
สั่งรัน
docker compose up -d - 4
ตั้ง Nginx และ HTTPS
sudo certbot --nginx -d ci.example.com - 5
เปิดใช้งานที่เก็บโค้ดและเขียนไปป์ไลน์
kind: pipeline type: docker name: default steps: - name: test image: node:22 commands: - npm ci - npm test - name: build image: node:22 commands: - npm run build - 6
เก็บค่าลับในระบบ
เก็บรหัสผ่านและโทเคนไว้ในส่วน Secret ของโครงการ ไม่เขียนลงในไฟล์ไปป์ไลน์ที่อยู่ในที่เก็บโค้ด
Runner ต้องเข้าถึงซ็อกเก็ตของ Docker จึงมีสิทธิ์สูงบนเครื่องนั้น ควรแยกเครื่อง Runner ออกจากบริการอื่นที่สำคัญ
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ผ่าน Reverse Proxy |
| 8080 | TCP | พอร์ตภายในของเซิร์ฟเวอร์ Drone |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ตั้งค่าลับที่ยาวและสุ่มสำหรับการสื่อสารระหว่างเซิร์ฟเวอร์กับ Runner
- จำกัดผู้ใช้ที่เข้าถึงได้ผ่านระบบ Git ขององค์กร
- แยกเครื่อง Runner ออกจากบริการอื่นเพราะมีสิทธิ์สูง
- เก็บค่าลับในระบบ Secret ไม่เขียนลงไฟล์ไปป์ไลน์
ทำไมควรรัน Drone CI บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
รันคู่กับ Gitea หรือ GitLab ที่ติดตั้งเองบน Cloud Server ในไทย ทำให้โค้ดไม่ออกนอกองค์กร
เพิ่มเครื่อง Runner ได้ตามปริมาณงานบิลด์และปิดเมื่อไม่ใช้เพื่อคุมค่าใช้จ่าย
ดึงแพ็กเกจจาก Nexus ในวงเดียวกันทำให้บิลด์เร็วขึ้นมาก
คำถามที่พบบ่อยเกี่ยวกับ Drone CI
Drone ต่างจาก Jenkins อย่างไร
Jenkins ยืดหยุ่นมากและมีปลั๊กอินจำนวนมาก แต่ต้องดูแลมากกว่า ส่วน Drone เบากว่าและบังคับให้ทุกขั้นตอนรันในคอนเทนเนอร์ ทำให้ผลลัพธ์ทำซ้ำได้ดีกว่า ทีมเล็กที่ใช้คอนเทนเนอร์อยู่แล้วมักเลือก Drone
ใช้ฟรีได้ไหม
มีรุ่นที่ใช้ฟรีตามเงื่อนไขของโครงการ ซึ่งมีข้อกำหนดเชิงพาณิชย์ในบางกรณี ควรอ่านเงื่อนไขฉบับปัจจุบันก่อนใช้ในองค์กร หรือพิจารณา Woodpecker CI ซึ่งเป็นทางแยกที่เป็นโอเพนซอร์สเต็มรูปแบบ
รันงานบิลด์พร้อมกันได้กี่งาน
กำหนดได้จากค่าความจุของ Runner และจำนวนเครื่อง Runner ที่มี ถ้างานบิลด์รอคิวบ่อย ให้เพิ่มเครื่อง Runner แทนการเพิ่มสเปกเครื่องเดียว
ทางเลือกอื่นที่คล้ายกับ Drone CI
แอปอื่นในหมวด DevOps และ CI/CD
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Drone CI ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด