Gitlab build docker image [Golang] ฉบับสายย่อ
ก่อนอื่นเรามาสร้าง repository เปล่าบน gitlab แล้ว clone ลงมาที่เครื่องได้เลยครับ
ก่อนอื่น init go module ด้วยคำสั่ง
go mod init [ชื่อ module]// ตัวอย่าง go mod init https://gitlab.com/tanaphonble/gogo
ต่อไปเราจะมาสร้างไฟล์ที่ต้องใช้ 3 ไฟล์ด้วยกัน
- main.go — เป็น code golang ของเรา
- Dockerfile — เอาไว้ใช้ตอน build docker image
- .gitlab-ci.yml — เอาไว้เขียน pipeline บน gitlab
1. สร้าง main.go
เป็น code ตัวอย่างจากทาง https://echo.labstack.com/guide นั่นเอง
2. สร้าง Dockerfile
เป็น docker multistage build สำหรับ image ของเรา
3. สร้าง .gitlab-ci.yml
สิ่งที่ pipeline ของเราจะทำคือสร้าง docker image แล้ว push ขึ้นไปยัง registry ของ gitlab เรานั่นเองครับ
ในส่วนที่เป็น variables.IMAGE สามารถเปลี่ยนเป็นชื่อ registry ของเราได้เลย
หลังจากสร้างไฟล์เสร็จก็สามารถ push ขึ้น gitlab ได้เลยครับ แล้ว pipeline ก็จะทำงานตามที่เราได้เขียนไว้ในไฟล์ .gitlab-ci.yml ครับ
ตรวจสอบความถูกต้อง
เตรียมทดสอบ image ที่เพิ่งถูก push ขึ้นไป
ขั้นตอนต่อไปเปิด terminal ที่เครื่องของเรา และทำการ login เพื่อให้สามารถ pull image จาก registry gitlab ได้
docker login registry.gitlab.com
Run!
docker run -p 1323:1323 [url ของ registry ที่ copy ไว้]
ขอบคุณที่อ่านจนจบนะคร้าบบบ ถ้าหากมีส่วนไหนที่อยากให้ปรับปรุงหรือมีข้อเสนอแนะยังไงก็เข้ามาให้ feedback กันได้เลยนะครับผม