Como configurar a Implantação Contínua para o seu projeto: experiência pessoal



Traduzido para você um artigo de Julius Minmo sobre a configuração da Implantação Contínua para o seu projeto. A automação economiza muito tempo e esforço. O artigo será útil principalmente para programadores iniciantes.

A implantação contínua é uma grande coisa. Depois que confirmamos o projeto e tudo acontece no modo automático, o monitoramento desse processo é simplesmente fascinante. Neste artigo, mostrarei como você pode configurar tudo para um projeto doméstico.

Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".

A Skillbox recomenda: O curso on-line Profissão Frontend Developer .
Portanto, para iniciantes, vejamos o diagrama que explica a diferença entre entrega contínua e implantação contínua.



No caso de um projeto doméstico, escolhemos Implantação Contínua, pois ninguém, exceto você, trabalha com ele (o projeto) e ninguém depende disso. Bem, como na maioria dos casos você deseja que as alterações sejam implantadas imediatamente, a escolha é óbvia. Se você quiser alterar o processo posteriormente, sempre poderá fazê-lo.

Você aprenderá o seguinte:

  • Como criar um arquivo docker.
  • Como fazer upload de um projeto para o GitHub.
  • Como criar automaticamente uma imagem do Docker em um Docker Hub.
  • Como baixar e executar automaticamente uma imagem da Torre de Vigia.

O que é necessário:

  • Um entendimento básico do que são Docker e Dockerfile.
  • Git instalado.
  • Conta em <a href='https://hub.docker.com/"> Docker Hub

Servidor (físico ou virtual) executando o Docker.

Aqui estão meus repositórios do GitHub e Docker Hub com os quais estou trabalhando.

Por que estou usando o Docker?


Torna possível usar o mesmo ambiente para diferentes processos, o que elimina a aparência de heisenbags e o problema "ele funciona apenas na minha máquina". Os contêineres são isolados, o que é bom do ponto de vista da segurança cibernética. Há mais vantagens, mas, na minha opinião, essas duas são as principais.

Configurar o Dockerfile

Primeiro, precisamos de um Dockerfile para o projeto. Esse arquivo é sempre chamado dessa maneira e não possui extensão. Está sempre no diretório principal do projeto.

Começa com a instrução FROM, que informa ao Docker de que imagem base estamos iniciando. Você pode desenhar uma analogia com a pintura. Podemos imaginar essa imagem como uma tela finalizada com um fundo pintado e o elemento principal ausente da composição (seu programa).

Em seguida, copie os arquivos do projeto para o contêiner usando o comando COPY ...

Ele permite que você escolha arquivos do local inicial para o atual - é claro, dentro do contêiner.

Em seguida, você precisa instalar as dependências, para isso eu uso o PIP do Python. O principal a lembrar é executar comandos em um contêiner com RUN.

Do python: 3.7
COPY ..
Executar o pip install -r requirements.txt

É simples, né? Agora você pode executar o programa no contêiner.

CMD ["python", "./my_script.py"]

Agora é isso, você terminou o Dockerfile e pode criar manualmente a imagem e o contêiner. Agora, basta pular este momento.

Agora vamos criar um repositório no GitHub, mas lembre-se de que a linha "Inicializar este repositório com um README" não precisa ser tocada.



Agora copie o URL.



Abra cmd / shell do diretório raiz do projeto. Agora você precisa inicializar o repositório, adicionar arquivos, configurar o modo remoto, confirmar arquivos e enviar o projeto ao GitHub.

git init git add * git remote add origin https://github.com/<user>/<repository>.git git commit -a -m "Make Dockerfile ready for CD" git push -u origin master 

Se tudo estiver correto, o repositório do GitHub ficará assim:



Estamos a meio caminho do sucesso!

Agora você precisa conectar o GitHub ao Docker Hub. Para fazer isso, vá para as configurações da sua conta.



Role para baixo e conecte-se.



Agora crie o repositório no Docker Hub.



Nomeie seu repositório e clique no ícone GitHub ou Bitbucket. Depois, selecionamos a organização (geralmente seu apelido) e o nome do projeto. Se desejado, as configurações podem ser alteradas.



Bem, agora o último passo - aqui precisamos da Torre de Vigia na máquina de destino. Este é um programa que permite automatizar o processo. Se uma atualização aparecer, a Torre de Vigia removerá o contêiner original e criará um contêiner a partir de uma nova imagem com as mesmas configurações.

A boa notícia é que você pode instalar a Torre de Vigia com o Docker, para isso é necessário inserir o seguinte comando no terminal:

 docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower 

E agora lançamos o contêiner para o nosso projeto!

 docker run -d --name <my-project> <username>/<my-project> 

-d permite que o programa funcione em segundo plano, portanto não será fechado se você fechar o terminal.

Para concluir, se você enviar uma confirmação ao repositório do GitHub, o Docker Hub criará automaticamente uma imagem do Docker. A Sentinela irá interagir com ele.

Quanto aos testes, você pode usar o Travis CI. Você pode ler sobre isso aqui , mas a conclusão é que você adiciona outro arquivo ao seu repositório que contém instruções para um servidor externo para executar testes de unidade ou outras instruções.

A Skillbox recomenda:

Source: https://habr.com/ru/post/pt439632/


All Articles