Dans cet article, j'ai décidé de décrire mon expérience avec la configuration de gitlab CI et des VPS loués.Contexte
Au travail, uv. DevOps'y m'a configuré un déploiement de projets dans kubernetes ( je travaille comme Go-developer ). J'ai mon propre projet pour animaux de compagnie - et je voulais automatiser, mais je n'avais pas beaucoup envie d'élever mon gitlab (VPS n'est pas en caoutchouc de toute façon).Donnée initiale
Créer un référentiel
Nous créons le référentiel que nous voulons automatiser.J'ai décidé de faire des tests pour augmenter Docker avec nginx et le transférer vers la page html.Structure du référentiel: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
Configuration du référentiel
Ouvrez les paramètres -> CI
Ensuite, cliquez sur Coureurs, développez.
Tout d'abord, désactivez les coureurs proposés - Désactivez les coureurs partagés
Ensuite, nous sommes intéressés par - «Configurer manuellement un coureur spécifique»
Nous copions le jeton, à l'avenir, nous en aurons besoin.Préparation VPS
Installez docker .Installez gitlab-runner .Enregistrez un nouveau coureur.! Dans le champ exécuteur, spécifiez la version du docker, comme dans le Dockerfile!
Dans le champ du jeton, spécifiez le jeton dont se souvient gitlab
gitlab-runner register
Maintenant, vous devez apporter de petites modifications Ă la configuration du coureur.nano /etc/gitlab-runner/config.toml
champvolumes = ["/cache"]
changer pourvolumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
Redémarrer le démongitlab-runner restart
Retour à gitlab / settings / CI / Runners à nouveau.Un coureur actif doit apparaître.
Modifiez le coureur en appuyant sur.
Autorisez l'exécution de tâches sans balises. Exécutez
maintenant les validations push et suivez les travaux.
Enfin, ouvrez le navigateur.
Lien vers le référentielPS: j'ai rencontré un problème - j'avais une image intérieure qui n'avait pas accès au réseau externe, la solution est créez le fichier /etc/docker/daemon.json :{
"dns": ["8.8.4.4", "8.8.8.8"]
}
service docker restart