Skip to content

assisMeneghetti/docker-todo-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Entregáveis

👨‍💻 O que deverá ser desenvolvido

Neste projeto você irá:

  1. Conteinerizar aplicações;
  2. Criar uma conexão entre elas;
  3. 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:

  1. Leia o requisito e crie um arquivo chamado commandN.dc no diretório docker-commands, onde N é 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! ⚠️

  2. 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:

  1. 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.
  2. Pasta todo-app: onde fica a nossa pseudo-aplicação, que servirá como base para nossos Dockerfiles e Compose;
    • ⚠️ 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!

⚠️ Importante:

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

Requisitos obrigatórios do projeto

1. Crie um container em modo interativo, sem rodá-lo, nomeando-o como 01container e utilizando a imagem alpine na versão 3.12

2. Inicie o container 01container

3. Liste os containers filtrando pelo nome 01container

4. Execute o comando cat /etc/os-release no container 01container sem se acoplar a ele

5. Remova o container 01container

6. Faça o download da imagem nginx com a versão 1.21.3-alpine sem criar ou rodar um container

7. Rode um novo container com a imagem nginx com a versão 1.21.3-alpine em segundo plano nomeando-o como 02images e mapeando sua porta padrão de acesso para porta 3000 do sistema hospedeiro

8. Pare o container 02images que está em andamento

Dockerfile

⚠️ As aplicações a seguir contam com um README.md próprio, que deve ser usado como referência na criação dos scripts!

9. Gere uma build a partir do Dockerfile do back-end do todo-app nomeando a imagem para todobackend

10. Gere uma build a partir do Dockerfile do front-end do todo-app nomeando a imagem para todofrontend

11. Gere uma build a partir do Dockerfile dos testes do todo-app nomeando a imagem para todotests

Requisito bônus do projeto

Docker-compose

12. Suba uma orquestração em segundo plano com o docker-compose de forma que backend, frontend e tests consigam se comunicar

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors