- Conteinerizar aplicações;
- Criar uma conexão entre elas;
- Orquestrar seu funcionamento.
Temos uma aplicação full-stack neste repositório: um aplicativo de tarefas! Esta aplicação precisa ser conteinerizada para funcionar. Foi desenvolvido os arquivos de configuração para cada frente específica: Front-end
, Back-end
e, no nosso caso, para um aplicativo de teste
que valida se as aplicações estão se comunicando.
Foi criado as imagens para as aplicações e configuradas com o docker-compose
. Para isto, utilizei uma série de comandos do docker
com diferentes níveis de complexidade, cada comando foi escrito em seu próprio arquivo para serem avaliados pelos testes da Trybe.
-
1. Crie um container em modo interativo, sem rodá-lo, nomeando-o como
01container
e utilizando a imagemalpine
na versão3.12
-
2. Inicie o container
01container
-
3. Liste os containers filtrando pelo nome
01container
-
4. Execute o comando
cat /etc/os-release
no container01container
sem se acoplar a ele -
5. Remova o container
01container
-
6. Faça o download da imagem
nginx
com a versão1.21.3-alpine
sem criar ou rodar um container -
7. Rode um novo container com a imagem
nginx
com a versão1.21.3-alpine
em segundo plano nomeando-o como02images
e mapeando sua porta padrão de acesso para porta3000
do sistema hospedeiro -
8. Pare o container
02images
que está em andamento -
9. Gere uma build a partir do Dockerfile do
back-end
dotodo-app
nomeando a imagem paratodobackend
-
10. Gere uma build a partir do Dockerfile do
front-end
dotodo-app
nomeando a imagem paratodofrontend
-
11. Gere uma build a partir do Dockerfile dos
testes
dotodo-app
nomeando a imagem paratodotests
- 12. Suba uma orquestração em segundo plano com o docker-compose de forma que
backend
,frontend
etests
consigam se comunicar