Pada artikel ini, saya memutuskan untuk menggambarkan pengalaman saya dengan mengkonfigurasi gitlab CI dan menyewa VPS.Latar Belakang
Di tempat kerja, uv. DevOps'y mengkonfigurasikan kepada saya sebuah penyebaran proyek di kubernetes ( saya bekerja sebagai Go-developer ). Saya punya proyek peliharaan sendiri - dan saya ingin mengotomatisasi, tetapi tidak ada keinginan khusus untuk meningkatkan gitlab saya (VPS toh bukan karet).Data awal
Buat Repositori
Kami membuat repositori yang ingin kami otomatisasi.Saya memutuskan untuk tes untuk meningkatkan buruh pelabuhan dengan nginx dan meneruskan ke halaman html.Struktur repositori:DockerfileFROM nginx:latest
COPY html /var/www/html
COPY nginx.conf /etc/nginx/nginx.conf
nginx.confevents {}
http {
server {
listen 80;
location / {
root /var/www/html;
}
}
}
- html
index.html<html>
<h1>Hello, Runner!</h1>
</html>
.gitlab-ci.yml
image: docker:19.03.8
before_script:
- docker info
build:
stage: build
script:
- docker build -t hellorunner .
deploy:
stage: deploy
script:
- docker ps --filter name=hellorunner --quiet | xargs --no-run-if-empty docker stop | xargs --no-run-if-empty docker rm
- docker run -d --restart=always --name hellorunner -p 8090:80 hellorunner
after_script:
- docker system prune -f
Pengaturan repositori
Buka pengaturan -> CI
Kemudian, klik Pelari, perluas.
Pertama, matikan pelari yang diusulkan - Nonaktifkan pelari yang dibagikan
Kemudian, kami tertarik pada - "Siapkan Pelari tertentu secara manual"
Kami menyalin token, di masa depan kami akan membutuhkannya.Persiapan VPS
Instal buruh pelabuhan .Instal gitlab-runner .Daftarkan pelari baru.! Di bidang pelaksana, tentukan versi buruh pelabuhan, seperti di Dockerfile!
Di bidang token, tentukan token yang diingat dari gitlab
gitlab-runner register
Sekarang, Anda perlu membuat perubahan kecil pada konfigurasi pelari.nano /etc/gitlab-runner/config.toml
bidangvolumes = ["/cache"]
mengubahvolumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
Mulai ulang daemongitlab-runner restart
Kembali ke gitlab / pengaturan / CI / Pelari lagi.Seorang pelari aktif akan muncul.
Edit pelari, dengan menekan.
Izinkan untuk melakukan tugas tanpa tag.
Sekarang jalankan komit dan ikuti pekerjaan.
Dan akhirnya, buka browser.
Tautan ke repositoriPS: Saya menemui masalah - Saya memiliki gambar rakitan dari dalam yang tidak memiliki akses ke jaringan eksternal, solusinya adalah buat file /etc/docker/daemon.json :{
"dns": ["8.8.4.4", "8.8.8.8"]
}
service docker restart