Codebergda o‘z Forgejo Runneringizni ishga tushirish: Devlar uchun o‘z CI/CD tizimini qurish
Nima uchun CI/CD Runneringizni o‘zingiz joylashtirasiz?
Agar Codebergdan GitHub o‘rniga foydalanayotgan bo‘lsangiz, uni yaxshi tanlaganingizni ko‘rasiz. Bu yerda versiya nazorati ochiq va xavfsiz. Lekin Codebergning umumiy runnerlari ba’zida sekin ishlaydi.
Yechim – o‘zingiz uchun Forgejo runner o‘rnatish. Runnerlar Codebergga ulanishni o‘zlari qiladi, shuning uchun VPSda, uy serveringizda yoki hatto noutbukingizda ham ishlaydi. Hech qanday port ochish shart emas.
Qanday ishlaydi?
Forgejo runner – bu Codebergdan topshiriqlarni olib, ularni bajaradigan dastur. Xavfsizlik uchun uni Docker-in-Docker yordamida ishlatamiz. Bu runnerga hostdagi Docker bilan aloqa qilmay turib, o‘zining konteynerlarini yaratish imkonini beradi.
Docker Compose sozlamasi
Oddiy ikki konteynerli tizim kerak bo‘ladi:
version: '3.8'
services:
docker-in-docker:
image: docker:dind
container_name: 'docker_dind'
privileged: 'true'
command: ['dockerd', '-H', 'tcp://0.0.0.0:2375', '--tls=false']
restart: 'unless-stopped'
runner:
image: 'data.forgejo.org/forgejo/runner:12'
links:
- docker-in-docker
depends_on:
docker-in-docker:
condition: service_started
container_name: 'runner'
environment:
DOCKER_HOST: tcp://docker-in-docker:2375
user: 1001:1001
volumes:
- ./data:/data
restart: 'unless-stopped'
command: 'forgejo-runner daemon --config runner-config.yml'
Bu yerda bitta konteyner Docker muhitini yaratadi, ikkinchisi esa runner bo‘lib ishlaydi.
Tizimni tayyorlash
Avval katalog yaratib, ruxsatlarni sozlang:
cd /opt/forgejo-runner
mkdir -p data/.cache
chown -R 1001:1001 data
chmod 775 data/.cache
chmod g+s data/.cache
Keyin konfiguratsiya faylini yarating:
sudo sh -c 'docker run --rm data.forgejo.org/forgejo/runner:12 forgejo-runner generate-config > data/runner-config.yml'
Runneringizni Codebergga ro‘yxatdan o‘tkazish
Codeberg hisobingizga kiring. Actions → Runners bo‘limiga o‘ting. “Create new runner” tugmasini bosib, nom va tavsif qo‘shing.
Tizim sizga UUID va token beradi – ularni darhol yozib oling. Bu ma’lumotlar runneringizni Codeberg bilan bog‘laydi.
Label va imkoniyatlarni sozlash
runner-config.yml faylini ochib, ikki joyni o‘zgartiring:
- Server bo‘limiga UUID va tokenni qo‘shing.
- Labels qismini quyidagicha to‘ldiring:
labels:
- 'ubuntu-latest:docker://node:20-bookworm'
- 'ubuntu-22.04:docker://node:20-bookworm'
- 'ubuntu-24.04:docker://node:22-bookworm'
Bu labelar workflowlarda runs-on bilan ishlatiladi. Agar sizning runneringiz ubuntu-latest deb belgilangan bo‘lsa, u yerda ishlaydi.
Agar bir vaqtda ko‘p ish bajarishni xohlasangiz, capacity qiymatini 4 ga qo‘yib ko‘ring.
Ishga tushirish
Tayyor bo‘lgach, quyidagi buyruq bilan ishga tushiring:
docker-compose up -d
Loglarni tekshirib ko‘ring:
docker-compose logs -f runner
Agar muvaffaqiyatli ulangan bo‘lsa, Codebergda runneringiz “online” bo‘ladi. Endi sizning repositoriylaringizdagi workflowlar runneringizga topshiriladi.
Nima foyda?
- Ishlar tezroq bajariladi.
- Siz to‘liq nazorat qilasiz.
- Codebergga yuk kamayadi.
- Ma’lumotlaringiz o‘zingizda qoladi.
- O‘zingiz kerakligicha o‘zgartirib, kengaytirishingiz mumkin.
Xulosa
O‘z runneringizni o‘rnatish oddiy loyiha bo‘lib, darhol foyda beradi. Agar Codeberg ishlatayotgan bo‘lsangiz, bu keyingi qadam. CI/CD ni to‘liq nazorat qilish imkonini beradi.