Git

Configuração do GitLab Container Registry

Configuração do GitLab Container Registry
Em nossa última postagem, mostramos como você pode configurar uma instância do GitLab para gerenciar os projetos da sua organização ou pessoais. Recomendamos que você use um FQDN e tenha a instância GitLab disponível em HTTPS. Como a maioria dos aplicativos são empacotados como contêineres, é razoável configurar um registro de contêiner onde diferentes versões de seu aplicativo, bem como seus diferentes componentes, podem ser armazenados como imagens Docker.

Se você não sabe o que é um registro de contêiner, não se preocupe. Isso ficará claro quando você realmente colocar sua primeira imagem de contêiner em uma instância do GitLab. Por enquanto, pense neles como repositórios para suas imagens de contêiner. Não são contêineres em execução, mas apenas imagens (dados simples) na instância remota do GitLab.

Por que você quer um registro de contêiner GitLab?

As chances são de que seu aplicativo seja empacotado como uma única imagem Docker ou uma coleção dessas imagens. Isso significa que diferentes versões serão associadas a diferentes imagens e o registro do contêiner ajudará você a controlá-las individualmente, bem como a ver quais devem ser agrupadas em uma versão específica.

O registro está para os contêineres, o que o repositório está para o código-fonte e o GitLab é um lugar para lidar com todos eles.

Pré-requisitos

  1. Uma instância GitLab de trabalho em HTTPS
  2. Acesso root à instância
  3. Acesso para modificar os registros DNS do seu nome de domínio

Vamos assumir que nosso GitLab está rodando em gitlab.exemplo.com .

Certificados DNS e TLS de registro

Você deve ser o usuário root para ativar o recurso de registro de contêiner na instância do GitLab. Os usuários individuais podem escolher usar este recurso em seus respectivos projetos, se assim o desejarem. Existem duas maneiras de fazer isso:

  1. Reutilize o nome de domínio existente e os certificados TLS para gitlab.exemplo.com e execute o registro em uma porta diferente.
  2. Indique outro nome de domínio, digamos, registro.gitlab.exemplo.com para o mesmo endereço IP onde o GitLab está rodando e configure o registro lá.

Vamos com a segunda opção, pois é muito mais profissional.

Passo 1: Adicionar um registro A para registro.gitlab.exemplo.com apontando para o mesmo IP em que sua instância do GitLab está sendo executada.

Passo 2: Pare os serviços gitlab em execução no seu servidor.

$ sudo gitlab-ctl stop

Etapa 3: Adicionar cliente ACME certbot's PPA para o seu sistema e instale o certbot.

$ sudo add-apt-repository ppa: certbot / certbot
$ sudo apt update
$ sudo apt install certbot

Passo 4: Obtenha certificados de Let's Encrypt.

$ certbot certonly

Você verá uma mensagem como:
“'
Como você gostaria de se autenticar na ACME CA?
--
1: Crie um servidor da web temporário (autônomo)
2: Coloque os arquivos no diretório webroot (webroot)
--
Selecione o número apropriado [1-2] e [entrar] (pressione 'c' para cancelar): 1
“'

Ele então solicitará seu e-mail, solicitará que você concorde com os termos de serviço e, o mais importante, solicitará seu nome de domínio, que seria registro.gitlab.exemplo.com em nosso caso de exemplo. Você receberá uma mensagem dizendo se os certificados foram obtidos ou não. Se estivessem, vá para a Etapa 5

Etapa 5: Agora que temos nossos certificados, é hora de colocá-los nos diretórios relacionados ao GitLab.

$ cp / etc / letsencrypt / live / registry.gitlab.exemplo.com / fullchain.pem
/ etc / gitlab / ssl / registry.gitlab.exemplo.crt
$ cp / etc / letsencrypt / live / registry.gitlab.exemplo.com / privkey.pem
/ etc / gitlab / ssl / registry.gitlab.exemplo.chave

Garanta as permissões sobre eles:

$ chmod 600 / etc / gitlab / ssl / registry.gitlab.exemplo.com.*

Como o resto do tutorial, certifique-se de substituir o exemplo.com com o seu nome de domínio existente. Já que esse é o nome do diretório, onde certbot armazenou o certificado.

Etapa 6: Editar configuração GitLab. Abra o arquivo / etc / gitlab / gitlab.rb e adicione as seguintes linhas ao final dela:

registry_external_url 'https: // registry.gitlab.exemplo.com '

Se você fez tudo com cuidado, a parte mais complicada da configuração acabou! Agora você terá um registro de contêiner instalado e em execução, basta executar:

$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl start

Habilitando registro e envio de imagens

Agora que temos um Container Registry, vamos criar um novo projeto usando a IU da web do GitLab e verificar se ele funciona.

Na coluna da esquerda, você pode ver uma seção de registro.  Você pode clicar nele para ver instruções detalhadas sobre como fazer o login e inserir imagens nele. Vamos voltar ao nosso desktop local, que deve ter o Docker instalado.

Podemos usá-lo para construir um contêiner hello-world simples e enviá-lo para este registro. Em seu sistema local, crie uma nova pasta:

$ cd ~
$ mkdir sample_container

Dentro dele, vamos criar um arquivo chamado Dockerfile e adicione o seguinte conteúdo a ele:

DO ubuntu: mais recente
## Seus comandos personalizados aqui

Você pode manter seu Dockerfile apenas com a primeira linha. Será um contêiner simples do Ubuntu. Agora você o constrói com uma tag significativa (nós usaremos a tag meu projeto que é igual ao nome do nosso projeto GitLab, isso é importante). No mesmo diretório, execute:

$ docker build -t registro.gitlab.exemplo.com //meu projeto .

Lembre-se de substituir seu nome de usuário GitLab em vez do placeholder usado no comando acima.

Ele apenas cria um contêiner do Ubuntu junto com a busca da imagem. Esta imagem é o que é empurrado. Se você modificar o contêiner e criar uma nova imagem com ele (usando docker commit comando será uma nova imagem). Vamos enviar a imagem vanilla ubuntu para o nosso registro.

Primeiro, precisamos fazer o login usando nosso nome de usuário e senha Gitlab:

registro de login $ docker.gitlab.exemplo.com

Então corra:

$ docker build -t registro.gitlab.exemplo.com / root / my-project .
$ docker push registry.gitlab.exemplo.com / root / my-project

Se você não tiver certeza de qual deve ser a tag do seu contêiner, visite a página de registro do seu projeto e haverá instruções claras para ele. Se o comando docker push funcionou corretamente, você pode ver uma nova imagem do docker sendo carregada (ou enviada) em sua instância do GitLab. Como foi mostrado no meu caso:

Conclusão

O controle de versão é muito mais do que apenas gerenciamento de código-fonte. Está em constante aperfeiçoamento para acomodar uma variedade versátil de demandas que qualquer projeto de software pode precisar inesperadamente. O registro de contêineres é apenas a ponta do iceberg. Você pode ter pipelines de CD / CI, gerenciamento de configuração avançado, autorização via tokens e uma infinidade de outras funcionalidades habilitadas no GitLab. Espero que você tenha aprendido algo novo sobre essa tecnologia maravilhosa neste tutorial.

Deixe-nos saber se há algo que você deseja que abordemos!

Como usar o AutoKey para automatizar jogos Linux
AutoKey é um utilitário de automação de desktop para Linux e X11, programado em Python 3, GTK e Qt. Usando sua funcionalidade de script e MACRO, você ...
Como mostrar o contador de FPS em jogos Linux
Os jogos Linux tiveram um grande impulso quando a Valve anunciou o suporte Linux para o cliente Steam e seus jogos em 2012. Desde então, muitos jogos ...
Como baixar e jogar Sid Meier's Civilization VI no Linux
Introdução ao jogo Civilization 6 é uma versão moderna do conceito clássico introduzido na série de jogos Age of Empires. A ideia era bastante simples...