Configuración de gitlab.com CI y servidor VPS

imagen
En este artículo, decidí describir mi experiencia con la configuración de gitlab CI y alquilé VPS.

Antecedentes


En el trabajo, uv. DevOps me configuró una implementación de proyectos en kubernetes ( trabajo como desarrollador de Go ). Tengo mi propio proyecto favorito, y quería automatizarlo, pero no tenía muchas ganas de criar mi gitlab (de todos modos, el VPS no es de goma).

Datos iniciales



Crear repositorio


Creamos el repositorio que queremos automatizar.

Decidí realizar pruebas para subir docker con nginx y reenviarlo a la página html.

Estructura del repositorio:

  • Dockerfile
    FROM nginx:latest
    COPY html /var/www/html
    COPY nginx.conf /etc/nginx/nginx.conf


  • nginx.conf
    events {}
    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
    


Configuración del repositorio


Configuración abierta -> CI

imagen

Luego, haga clic en Corredores, expanda
imagen

Primero, apague los corredores propuestos - Deshabilite los corredores compartidos

imagen

Luego, nos interesa: “Configurar un corredor específico manualmente”

imagen

Copiamos el token, en el futuro lo necesitaremos.

Preparación VPS


Instalar docker .

Instalar gitlab-runner .

Registra un nuevo corredor.

! En el campo ejecutor, especifique la versión de Docker, como en el Dockerfile.
En el campo de token, especifique el token que se recordó de gitlab


gitlab-runner register

imagen

Ahora, debe realizar pequeños cambios en la configuración del corredor.

nano /etc/gitlab-runner/config.toml

campo

volumes = ["/cache"]

cambiar a

volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]

imagen

Reiniciando el demonio

gitlab-runner restart

Volver a gitlab / settings / CI / Runners nuevamente.

Debería aparecer un corredor activo.

imagen

Edite el corredor, presionando.

imagen

Permitir realizar tareas sin etiquetas.

imagen

Ahora ejecute las confirmaciones de inserción y siga los trabajos.

imagen

Y finalmente, abra el navegador.

imagen

Enlace al repositorio de

PS: encontré un problema: tenía una imagen ensamblada desde el interior que no tenía acceso a una red externa, la solución es cree el archivo /etc/docker/daemon.json :

{
    "dns": ["8.8.4.4", "8.8.8.8"]
}

 service docker restart

All Articles