
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 DockerfilePrimeiro, 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: