Pengaturan Registri Kontainer GitLab

Pengaturan Registri Kontainer GitLab

Dalam posting terakhir kami, kami menunjukkan kepada Anda bagaimana Anda dapat mengatur instance GitLab untuk mengelola proyek organisasi atau pribadi Anda. Kami menyarankan Anda untuk menggunakan FQDN dan menyediakan instans GitLab melalui HTTPS. Karena sebagian besar aplikasi dikemas sebagai wadah, masuk akal untuk menyiapkan registri wadah tempat berbagai versi aplikasi Anda, serta komponennya yang berbeda dapat disimpan sebagai gambar Docker.

Jika Anda tidak tahu apa itu container registry, jangan khawatir. Ini akan menjadi jelas setelah Anda benar-benar mendorong gambar kontainer pertama Anda ke dalam instance GitLab. Untuk saat ini, anggap mereka sebagai repositori untuk gambar kontainer Anda. Ini bukan wadah yang berjalan tetapi hanya gambar (data biasa) yang ada di instance GitLab jarak jauh.

Mengapa Anda menginginkan registri wadah GitLab?

Kemungkinan aplikasi Anda dikemas baik sebagai gambar Docker tunggal atau kumpulan gambar tersebut. Ini berarti versi yang berbeda akan dikaitkan dengan gambar yang berbeda dan registri penampung akan membantu Anda melacaknya satu per satu serta melihat mana yang akan digabungkan bersama dalam rilis tertentu.

Registri adalah untuk wadah, apa repositori untuk kode sumber dan GitLab adalah satu tempat untuk menangani semuanya.

Prerequisites

  1. Instance GitLab yang berfungsi melalui HTTPS
  2. Akses root ke instance
  3. Akses untuk mengubah data DNS nama domain Anda

Kami akan menganggap GitLab kami sedang berjalan gitlab.example.com .

Registri DNS dan sertifikat TLS

Anda harus menjadi user root untuk mengaktifkan fitur registry container di seluruh instance GitLab. Pengguna individu kemudian dapat memilih untuk menggunakan fitur ini dalam proyek mereka masing-masing, jika mereka menginginkannya. Ada dua cara untuk melakukannya:

  1. Gunakan kembali nama domain dan sertifikat TLS yang ada untuk gitlab.example.com dan jalankan registri pada port yang berbeda.
  2. Arahkan nama domain lain, katakanlah, registry.gitlab.example.com ke alamat IP yang sama tempat GitLab berjalan dan konfigurasikan registri di sana.

Mari kita pergi dengan opsi kedua karena jauh lebih profesional.

Langkah 1: Tambahkan catatan A untukregistry.gitlab.example.com menunjuk ke IP yang sama tempat instance GitLab Anda berjalan.

Langkah 2: Hentikan service gitlab yang berjalan di server Anda.

$ sudo gitlab-ctl stop

Langkah 3: Tambahkan PPA certbot client ACMEke sistem Anda dan instal certbot.

$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt update
$ sudo apt install certbot

Langkah 4: Dapatkan sertifikat dari Let’s Encrypt.

$ certbot certonly

Anda akan melihat pesan seperti:
“`
Bagaimana Anda ingin mengautentikasi dengan ACME CA?
———————————————————————————-
1: Memutar server web sementara (standalone)
2: Tempatkan file di direktori webroot (webroot)
——— ————————————————————————-
Pilih nomor yang sesuai [1-2] lalu [enter] (tekan ‘c’ untuk membatalkan): 1
“`

Ini kemudian akan meminta email Anda, meminta Anda untuk menyetujui persyaratan service mereka, dan, yang paling penting, menanyakan nama domain Anda yang akan registry.gitlab.example.com dalam contoh kasus kami. Anda akan mendapatkan pesan yang mengatakan apakah sertifikat diperoleh atau tidak. Jika ya, lanjutkan ke Langkah 5

Langkah 5: Sekarang setelah kita memiliki sertifikat, saatnya untuk menempatkannya di bawah direktori terkait GitLab.

$ cp /etc/letsencrypt/live/registry.gitlab.example.com/fullchain.pem
/etc/gitlab/ssl/registry.gitlab.example.crt

$ cp /etc/letsencrypt/live/registry.gitlab.example.com/privkey.pem
/etc/gitlab/ssl/registry.gitlab.example.key

Amankan izin pada mereka:

$ chmod 600 /etc/gitlab/ssl/registry.gitlab.example.com.*

Seperti tutorial lainnya, pastikan Anda mengganti example.com dengan nama domain Anda yang sudah ada. Karena itulah nama direktorinya, tempat certbot menyimpan sertifikat.

Langkah 6: Edit konfigurasi GitLab. Buka file /etc/gitlab/gitlab.rb dan tambahkan baris berikut di bawahnya:

registry_external_url 'https://registry.gitlab.example.com'

Jika Anda telah melakukan semuanya dengan hati-hati, bagian paling rumit dari penyiapan selesai! Anda sekarang akan memiliki registri Kontainer dan berjalan, jalankan saja:

$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl start

Enabling Registry and Pushing Images

Sekarang setelah kita memiliki Container Registry, mari buat proyek baru menggunakan UI web GitLab dan verifikasi bahwa itu berfungsi.

Di kolom sebelah kiri Anda dapat melihat bagian Registry. Anda dapat mengkliknya untuk melihat petunjuk terperinci tentang cara masuk dan memasukkan gambar ke dalamnya. Mari kembali ke desktop lokal kita, yang seharusnya sudah menginstal Docker.

Kita dapat menggunakannya untuk membangun wadah hello-world sederhana dan mendorongnya ke registri ini. Di sistem lokal Anda, buat folder baru:

$ cd ~
$ mkdir sample_container

Di dalamnya mari kita buat file bernama Dockerfile dan tambahkan konten berikut ke dalamnya:

FROM ubuntu:latest
## Your custom commands here

Anda dapat menyimpan Dockerfile Anda hanya dengan baris pertama. Ini akan menjadi wadah ubuntu biasa. Sekarang Anda membangunnya dengan tag yang bermakna (kami akan menggunakan tag my-project yang sama dengan nama proyek GitLab kami, ini penting). Di direktori yang sama jalankan:

$ docker build -t registry.gitlab.example.com/<username>/my-project.

Ingatlah untuk mengganti nama user GitLab Anda sebagai ganti <username> placeholder yang digunakan dalam perintah di atas.

Itu hanya membuat wadah Ubuntu bersama dengan mengambil gambar. Gambar inilah yang didorong. Jika Anda memodifikasi wadah dan membuat gambar baru dengannya (menggunakan perintah komit buruh pelabuhan, itu akan menjadi gambar baru). Mari kita push image vanilla ubuntu ke registry kita.

Pertama kita harus login menggunakan username dan password Gitlab kita:

$ docker login registry.gitlab.example.com

Lalu lari:

$ docker build -t registry.gitlab.example.com/root/my-project.
$ docker push registry.gitlab.example.com/root/my-project

Jika Anda tidak yakin apa tag penampung Anda seharusnya, kunjungi halaman registri proyek Anda dan akan ada instruksi yang jelas untuk itu. Jika perintah docker push telah bekerja dengan baik, Anda dapat melihat gambar docker baru diunggah (atau didorong) di instance GitLab Anda. Seperti yang ditunjukkan dalam kasus saya:

Kesimpulan

Kontrol versi jauh lebih dari sekadar manajemen kode sumber. Ini terus meningkat untuk mengakomodasi berbagai tuntutan yang mungkin dibutuhkan oleh setiap proyek perangkat lunak secara tidak terduga. Registri kontainer hanyalah puncak gunung es. Anda dapat memiliki saluran CD/CI, manajemen konfigurasi lanjutan, otorisasi melalui token, dan banyak fungsi lain yang diaktifkan di GitLab. Semoga Anda mempelajari sesuatu yang baru tentang teknologi luar biasa ini dalam tutorial ini.

Beri tahu kami jika ada sesuatu yang Anda ingin kami liput!

Related Posts