Configurando o servidor IC e VPS do gitlab.com

imagem
Neste artigo, decidi descrever minha experiência com a configuração do IC do gitlab e do VPS alugado.

fundo


No trabalho, uv. O DevOps 'configurou uma implantação de projetos no kubernetes para mim ( trabalho como desenvolvedor Go ). Eu tenho meu próprio projeto de estimação - e eu queria automatizar, mas não havia nenhum desejo específico de aumentar meu gitlab (o VPS não é de borracha de qualquer maneira).

Dados iniciais



Criar Repositório


Criamos o repositório que queremos automatizar.

Decidi fazer testes para aumentar o docker com nginx e encaminhar para a página html.

Estrutura do repositório:

  • 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
    


Configuração do Repositório


Abra as configurações -> CI

imagem

Em seguida, clique em Corredores, expanda.Primeiro
imagem

, desative os corredores propostos - Desativar corredores compartilhados

imagem

Em seguida, estamos interessados ​​em - “Configurar manualmente um corredor específico”

imagem

. Copiamos o token, no futuro precisaremos dele.

Preparação VPS


Instale a janela de encaixe .

Instale o gitlab-runner .

Registre um novo corredor.

! No campo executor, especifique a versão do docker, como no Dockerfile!
No campo token, especifique o token que foi lembrado no gitlab


gitlab-runner register

imagem

Agora, você precisa fazer pequenas alterações na configuração do corredor.

nano /etc/gitlab-runner/config.toml

campo

volumes = ["/cache"]

mudar para

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

imagem

Reiniciando o daemon

gitlab-runner restart

Voltar ao gitlab / settings / CI / Runners novamente.

Um corredor ativo deve aparecer.

imagem

Edite o corredor, pressionando.

imagem

Permita executar tarefas sem tags.

imagem

Agora execute push commit e siga as tarefas.

imagem

E, finalmente, abra o navegador.

imagem

Link para o repositório

PS: Encontrei um problema - eu tinha uma imagem montada por dentro que não tinha acesso a uma rede externa, a solução é crie o arquivo /etc/docker/daemon.json :

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

 service docker restart

All Articles