👨💻 O que deverá ser desenvolvido
Neste projeto você irá:
- 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. Você deverá desenvolver 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.
Você deverá criar as imagens para as aplicações e configurar essas imagens com o docker-compose.
Para isto, você irá utilizar uma série de comandos do docker com diferentes níveis de complexidade.
Cada comando deverá ser escrito em seu próprio arquivo.
Para isto, siga os seguintes passos:
-
Leia o requisito e crie um arquivo chamado
commandN.dcno diretóriodocker-commands, ondeNé o número do requisito. Por exemplo:Requisito 1: ./docker/docker-commands/command01.dc Requisito 2: ./docker/docker-commands/command02.dc Requisito 3: ./docker/docker-commands/command03.dc⚠️ É muito importante que os seus arquivos tenham exatamente estes nomes!⚠️ -
Escreva neste arquivo o comando do CLI (Interface de Linha de Comando) do Docker que resolve o requisito. Um exemplo de como vai ficar seu arquivo:
docker network inspect bridge
Os arquivos principais do projeto estão na pasta docker, na raiz do projeto. Nela estão contidos:
- Pasta
docker-commands: onde ficarão os comandos exigidos pelos requisitos;⚠️ Importante: você deve assumir que essa é a pasta raiz para os comandos.- Por exemplo, se você precisa referenciar um caminho em um comando, você deve assumir que sua pasta raiz esta partindo de
./docker.
- Pasta
todo-app: onde fica a nossa pseudo-aplicação, que servirá como base para nossosDockerfiles eCompose;⚠️ Essa aplicação conta com um README.md próprio, que deve ser usado como referência na criação dos scripts!
Quando for necessário fazer a orquestração das aplicações, o arquivo docker-compose.yml deverá ser criado na pasta ./docker.
📜 Não se esqueça de consultar as documentações!
Esse projeto tem como intuito te treinar para ter mais familiaridade com a documentação de aplicações, portanto, poderão haver alguns comandos ou atributos que não estão no course, mas que devem ser descritos no decorrer dos requisitos.
Nesses casos, é importante se atentar àquilo que o requisito pede e lembrar sempre de utilizar a documentação oficial do Docker para pesquisar detalhes sobre comandos.
Ao criar um Dockerfile para o nosso pseudo-aplicativo, seu README (./docker/tests/README.md) deve servir como "tradutor" para os passos de execução. Lembre-se de que o Dockerfile é como uma receita para execução dessas aplicações.
Aqui, também é importante a utilização do comando --help no CLI (docker <comando> <subcomando> --help), dado que para cada comando do docker, é possível aplicar subcomandos ou parâmetros, exemplo: docker network --help