Imagens

Os Jobs - Os Blocos da Pipeline são executados individuamente, onde todo o conteúdo esta esta sendo executado em um Docker dentro de uma imagem especifica, onde por de default é o ruby:2.5

para especifica uma :image dentro precisamos passar como parametro dentro do arquivo .gitlab.ci.yml

é possível separar em um job específico

definimos utilizando

 
jobs:
    image: imagem
 

Criando uma imagem MV em nuvem

Dentro de um GCP, podemos utilizamos uma uma maquina utilizando instancias dentro das instâncias Ao abrir a instância e editar, encontramos uma sessão de chave SSH utilizada para acesso remoto

Configurações Gitlab Runner

Dentro de Runner temos os shared runners que são runners do proprio gitlab, o gitlab runner será instalado dentro de sua VM, utilizando o comando

Debian/Ubuntu/Mint

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
 
apt get install gitlab-runner

RHEL/CentOS/Fedora/Amazon Linux

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
 
apt get install gitlab-runner

E para configurar a VM como um runner utilizamos e o comando

 
sudo gitlab-runner register
 

após esse comando será solicitado informações sobre a url para configurar no gitlab é

https://gitlab.com/

também será solicitado, um token para que é gerado especifico no painel runner do gitlab

você pode selecionar qual “terminal” seja utilizar após esse comando.

para testar se esta tudo funcionando pode rodar comando:

 
gitlab-runner start
 

Docker dentro da VM

Esses comandos são padrão para qualquer usuário, visto que isso poderiamos

    sudo usermod -aG docker "NOME_USUARIO"
    sudo usermod -ag docker gitlab-runner

para fazer um pull de imagens é necessário que esteja logado em sua conta no docker, para conceder permissão em seu usuário, no docker tanto para seu usuário, quando para git runner

 
    docker login 
 

Pipeline utilizando Docker

Criar um dockerfile dentro de seu projeto nesse exemplo foi utilizado o apache

FROM httpd:latest
 
WORKDIR /usr/local/apache2/htdocs/
 
COPY . /usr/local/apache2/htdocs/
 
EXPOSE 80
 

Criar um arquivo .gitlab-ci.yml onde teremos dois estagios um estagio de build e outro de deploy buscando o runner pela tag especificada

stage:
    - build 
    - deploy
 
criar_imagens: 
    stage: build
    tags: 
        - "NOME DA TAG"
    script:
        docker build -t "NOME USUARIO"/"PROJETO":VERSAO CAMINHO_DO_PROJETO
        docker push "USUARIO_DOCKER"/gcp-runner:1.0
 
executar_imagens:
    stage: deploy
    needs:
        criar_imagens
    tags:
        - "NOME DA TAG"
    script:
        - docker run -dti --name webserver -p 80:80 denilsonbonatti/gcp-runner:1.0
 

Tópicos Relacionados