Tutorial ini merupakan catatan belajar saya dalam menggunakan GitLab CI/CD dan Docker.
Intinya, dalam tutorial ini saya membuat satu projek atau repositori di GitLab. Repositori tersebut saya gunakan untuk menyimpan source code .html
yang saya buat.
Setiap terjadi perubahan di branch master repositori tersebut, maka source code tersebut akan di-deploy secara otomatis ke Docker container dengan menggunakan bantuan GitLab CI/CD dan GitLab Runner.
Kebutuhan
Beberapa kebutuhan yang perlu anda siapkan untuk mengeksekusi catatan belajar saya ini adalah sebagai berikut:
- memiliki akun GitLab,
- membuat 1 VM dengan sistem operasi Ubuntu, dan
- di komputer yang digunakan sudah dipasang
git
.
Peringatan: Dalam membuat catatan belajar menggunakan GitLab CI/CD dan Docker ini, saya memakai sistem operasi Ubuntu 18.04.
Eksekusi
A. Buat Projek di GitLab
Buat projek di gitlab.com dengan nama projek misalnya app
.
Kemudian lanjutkan dengan mengklonakan projek yang baru saja anda buat tersebut.
git clone https://gitlab.com/username/app.git
Peringatan: sesuaikan bagian username
dengan nama pengguna akun GitLab anda dan bagian app.git
dengan nama projek yang anda buat.
B. Buat Berkas Dockerfile, Docker Compose, HTML, dan GitLab CI.
Masuk ke direktori projek app
.
cd app
1. Buat Berkas Dockerfile
vi Dockerfile
|
|
2. Buat Berkas Docker Compose
vi docker-compose.yml
|
|
3. Buat Berkas HTML
mkdir htdocs
vi htdocs/index.html
|
|
4. Buat Berkas GitLab CI
vi .gitlab-ci.yml
|
|
Setelah 4 berkas di atas anda buat, lanjutkan dengan menyimpan berkas-berkas tersebut ke repositori GitLab.
git add .
git commit -m "Initial commit"
git push

Repositori Projek app
C. Buat Token GitLab Runner
Gunakan browser kesayangan anda untuk mengakses projek di GitLab yang anda buat tadi: gitlab.com/username/app.
Masuk ke menu Setting > CI / CD > Runners > Setup a specific Runner manually
.
Catat token yang ada dapatkan dari proses di atas.
D. Instalasi Docker Engine, Docker Compose, dan GitLab Runner.
Instalasi tools yang saya sebutkan di atas tersebut dilakukan di VM Ubuntu. Eksekusi perintah-perintah di bawah ini di terminal Ubuntu.
1. Memasang Docker
Di bawah ini adalah step by step instalasi Docker di Ubuntu.
sudo su
apt-get update
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
docker -v
docker run hello-world
2. Memasang Docker Compose
Di bawah ini adalah step by step instalasi Docker Compose.
sudo su
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
3. Memasang GitLab Runner
Di bawah ini adalah step by step instalasi GitLab Runner.
sudo su
wget -O /usr/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
chmod +x /usr/bin/gitlab-runner
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
Lanjutkan dengan melakukan regitrasi GitLab Runner.
Peringatan: ganti REGISTRATION_TOKEN
dengan token yang sudah anda dapatkan tadi.
gitlab-runner register -n \
--url https://gitlab.com/ \
--registration-token REGISTRATION_TOKEN \
--executor shell \
--description "app" \
--tag-list "app"
usermod -aG docker gitlab-runner
sudo -u gitlab-runner -H docker info
cat /etc/gitlab-runner/config.toml
gitlab-runner start
gitlab-runner list
gitlab-runner status
gitlab-runner verify
Gunakan browser dan akses alamat gitlab.com/username/app.
Masuk ke menu Setting > CI / CD > Runners > Available specific runners
. Pastikan status GitLab Runner yang baru saja dibuat dalam keadaan running.

GitLab Runner
E. Buat Pipeline
Gunakan browser dan akses alamat gitlab.com/username/app/pipelines. Akses menu CI/CD > Pipeline > Run Pipeline
.
Pada opsi Run for branch name or tag
pilih branch master
. Lanjutkan dengan mengklik Run Pipeline
.
Tunggu sampai proses deployment selesai dan status menjadi passed.

Pipeline
F. Buat Berkas HTML (lagi)
Eksekusi perintah di bawah ini di dalam direktori project app
.
vi htdocs/ok.html
|
|
Simpan berkas tersebut ke repositori GitLab.
git add .
git commit -m "second commit"
git push
Gunakan browser dan akses alamat gitlab.com/username/app/-/pipelines.
Bila proses di atas sudah anda kerjakan dengan benar, maka anda akan melihat pipeline yang berjalan secara otomatis karena ada event push ke branch master di repositori projek app
.
G. Melihat Hasil Deployment
Eksekusi perintah-perintah di bawah ini di VM Ubuntu.
sudo su
docker ps
curl -i http://localhost:8070
curl -i http://localhost:8070/ok.html
Selesai dan semoga bermanfaat.
Referensi: