GitLab Container Registry คืออะไร
GitLab Container Registry คือ เป็น feature หนึ่งของทาง GitLab เอาไว้ใช้สำหรับเก็บ Docker Image ในโปรเจคต่างๆ ซึ่งเค้า provide ให้แก่ทุกโปรเจคแบฟรีๆ
ซึ่งการเก็บ Docker Image วิธีนี้แนะนำสำหรับใครที่ต้องการเก็บ image แต่ละโปรเจคไว้ที่เดียวกันทำให้การบริหารจัดการเป็นเรื่องที่ง่ายมากอีกด้วย
GitLab มี Feature หลักๆ อะไรบ้าง
- Gitlab Repository ใช้เก็บ source code และ version control
- Gitlab Container Registry ใช้เก็บ Docker Image
- Gitlab CI/CD ใช้ช่วยในการ build & deploy แบบอัตโนมัติ
- Gitlab Runners เป็นตัวช่วย build project หรือก็คือตัว Run คำสั่ง Gitlab CI/CD อีกที
GitLab Container Registry VS Docker Hub
Docker Hub ถ้าเป็น public image จะไม่มีค่าใช้จ่าย แต่ถ้าเป็น private image จะต้องเสียค่าใช้จ่ายเพิ่ม เพราะฉะนั้นถ้าใครอยากแชร์ Image ไว้ใช้เอง หรือแชร์กันภายในทีมจำนวนหลายๆ Image แนะนำให้ไปใช้ Gitlab repository แทน เพราะเป็นแบบฟรี private image
การเก็บ Docker Image บน Gitlab Container Registry
1. สมัครใช้บริการ Gitlab และสร้าง Project สำหรับใครที่ยังทำไม่เป็นดูวิธีตาม link นี้ได้เลยครับ "การพัฒนา Project แบบ CI/CD ด้วย Gitlab ตอนที่ 1 - การจัดการ Project ด้วย Gitlab ผ่าน Sourcetree !!!"
2. สร้าง Dockerfile ที่เครื่องเรา สำหรับใครที่ยังทำไม่เป็นดูวิธีตาม link นี้ได้เลยครับ "การพัฒนา Project แบบ CI/CD ด้วย Gitlab ตอนที่ 6 - ขั้นตอนการติดตั้งใช้งาน Docker และ Docker Container !!!"
3. เข้าไปที่ Project ที่เราสร้างใน Gitlab ในส่วนของ Packages ตรงเมนูด้านซ้ายและ เลือก Container Registry ซึ่งก็คือที่เก็บไฟล์ Image ของเรานั่นเอง
4. Gitlab จะมีคำสั่งให้เราทำ เพื่อที่จะอัพโหลด Docker Image ของเราขึ้นมาเก็บไว้ที่ Gitlab Container Registry
5. ทำการ push Docker Image จากในเครื่องเราขึ้นไปเก็บบน Gitlab Container Registry
- เปิด terminal หรือ command line จากนั้นรันคำสั่ง Login เข้าสู่ Gitlab
docker login registry.gitlab.com
- จากนั้นรันคำสั่งเข้าไปที่โฟลเดอร์ /Users/UserName/Desktop/www/html ที่เราเก็บ
Dockerfile ไว้
cd /Users/UserName/Desktop/www/html
- เปลี่ยนชื่อ Docker Image ของเราจาก myimage:1.0 ไปเป็น registry.gitlab.com/[your-username]/test-project โดยรันคำสั่ง Build Dockerfile เพื่อสร้าง Docker Image สำหรับ Push ขึ้น Gitlab
docker build -t registry.gitlab.com/[your-username]/test-project .
- สั่ง Push Docker Image ที่สร้างใหม่ขึ้น Gitlab โดยใช้คำสั่ง
docker push registry.gitlab.com/[your-username]/test-project
- หลังจากเสร็จเรียบร้อยแล้ว เราก็จะเห็น Docker Image ของเราขึ้นมาอยู่บน Gitlab แล้ว และ เราสามารถ copy ลิงค์ไปใช้ได้ทันที ซึ่งการใช้งาน Docker Image จะสามารถใช้งานได้แค่ Gitlab User ของเราเท่านั้น (ในกรณีที่ project ของเราเป็น private )
6. ทดสอบสร้าง Docker Container จาก Docker Image บน Gitlab Container Registry โดยใช้คำสั่ง
docker run --name testwebserver -p 8080:80 -v /Users/UserName/Desktop/www/html:/var/www/html/ -d registry.gitlab.com/[your-username]/test-project
สรุป
ในปัจจุบันมีบริการการเก็บ Docker images หลายเจ้าทั้ง Amazon, GitLab, Dockerhub, Google Cloud การเลือกใช้เราควรดูให้เหมาะสมกับความต้องการของเราและความฟีเจอร์ของผู้ให้บริการและทีมเป็นสำคัญครับ