ติดตั้ง GitLab CE และ GitLab Runner บน Docker
Install GitLab CE and GitLab Runner on Docker
— — — — — — — — — — — — — — —
สารบัญเนื้อหาทั้งหมด (My Contents)
— — — — — — — — — — — — — — —
บอกก่อนนะครับ คำว่า “GitLab” ตลอดบทความของผม ผมจะหมายถึง self-hosted GitLab นะครับ ไม่ใช่ GitLab.com (Saas) แต่อย่างใด
ภาพรวมของสิ่งที่เราจะทำ
- ติดตั้ง GitLab (CE) บน Docker
- ติดตั้ง GitLab Runner บน Docker และ Register เพื่อใช้งาน
สิ่งที่เราต้องเตรียมให้พร้อมก่อน
- ขึ้น Ubuntu Server 18.04 จำนวน 2 ตัว (ผมใช้เป็น VM นะ) ซึ่งอยู่ใน network เดียวกัน พร้อมติดตั้ง Docker บนทั้งสองตัวให้เรียบร้อยครับ
- กำหนด IP ของ gitlab-ce เป็น IP 172.16.1.200/24
- กำหนด IP ของ gitlab-runner เป็น IP 172.16.1.201/24
- แนะนำว่าที่เซิร์ฟเวอร์ gitlab-ce ให้เปลี่ยน SSH port ที่ใช้ remote จาก 22 ไปเป็นอย่างอื่น เพราะเดี๋ยวเราจะเอา port 22 มาใช้กับ GitLab แทนครับ
- ถ้าใครมีปัญหาตอน register ตัว runner ผมแนะนำว่าให้ uninstall Docker ออกก่อนแล้วติดตั้งใหม่โดยทำตามนี้ครับ https://docs.docker.com/engine/install/ubuntu
— — — — — — — — — — — — — — — — — — — —
1. ติดตั้ง GitLab CE บน Docker (บน gitlab-ce)
สร้าง Enviroment Variable ชื่อ GITLAB_HOME
โดยชี้ไปที่ directory ที่เราต้องการเก็บ GitLab (ผมไว้บน /root เลย)
export GITLAB_HOME=$HOME
เริ่ม Run Image ของ GitLab CE
ตรงนี้ใครจะเปลี่ยน port ก็เปลี่ยนนะครับ ตรง argument ชื่อ publish นั่นแหละ เรียงไปเลยตั้งแต่ HTTPS, HTTP และ SSH เช่น ถ้าผมต้องการเปลี่ยน HTTP เป็น port 8080 ก็จะแก้เป็น 8080:80 ครับ
sudo docker run --detach \
--hostname 172.16.1.200 \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/gitlab/config:/etc/gitlab \
--volume $GITLAB_HOME/gitlab/logs:/var/log/gitlab \
--volume $GITLAB_HOME/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
เมื่อกด enter ไป Docker จะทำการ pull image แล้วก็ run ครับ ตรงนี้ต้องรอสักประมาณ 1 นาทีกว่าจะเข้าใช้งานผ่าน browser ได้
สังเกตตรงบรรทัดที่ argument เป็น volume มั้ยครับ นั่นคือ path ที่ GitLab จะเก็บไฟล์ต่าง ๆ ไว้บนเครื่องของเรา ซึ่งก็คือโฟลเดอร์ gitlab ภายใต้ project ของเรานั่นเอง
เปิด Browser เพื่อเข้าใช้งาน GitLab ของเราได้เลย
http://172.16.1.200
— — — — — — — — — — — — — — — — — — — —
2. ติดตั้ง GitLab Runner บน Docker (บน gitlab-runner)
เช็คข้อมูลที่ใช้สำหรับ Register GitLab Runner
บน GitLab ให้ใช้ root account เข้ามาที่หน้านี้ก่อน
http://172.16.1.200/admin/runners
จากนั้นจะเห็นข้อมูลแบบนี้
ทั้ง URL และ token เนี่ยแหละที่เราจะเอาไปใช้ในการ register
Run ตัว GitLab Runner ขึ้นมา
กลับไปที่ gitlab-runner แล้วใช้ command นี้
docker run -d --name gitlab-runner1 -v /var/run/docker.sock:/var/run/docker.sock -v /srv/gitlab-runner1/config:/etc/gitlab-runner --rm gitlab/gitlab-runner
สังเกตว่าตรงตัวหนาจะเป็น gitlab-runner1 นะครับ ที่ผมใส่ 1 ไปเผื่อว่าเราอยากจะมี runner มากกว่า 1 ตัว ก็ใช้วิธีเดียวกันนี่แหละในการ register
Register GitLab Runner เข้ากับ GitLab CE
docker exec -it gitlab-runner1 gitlab-runner register
เมื่อ enter ไป ก็ทำตาม step เลยครับ ของผมเลือกแบบนี้
- URL = http://172.16.1.200/
- Token = RN1sfj8zGEyskcJKDkyp
- Description: runner1
- Tags: (ไม่ใส่)
- Executor: docker
- Docker image: ruby:2.6
เป็นอันเสร็จสิ้นครับ เราจะได้หน้าตาประมาณนี้
คราวนี้เราก็จะมี GitLab ไว้ใช้งานแล้ว แถมมี runner ไว้ทำ CI/CD pipeline ด้วย
— — — — — — — — — — — — — — —
สารบัญเนื้อหาทั้งหมด (My Contents)
— — — — — — — — — — — — — — —