‼️ Antes de começar a desenvolver
- Clone o repositório
git clone git@github.com:FranciscoVieir/Project-docker-todo-list.git
- Entre na pasta do repositório que você acabou de clonar:
cd project-docker-todo-list
- Instale as dependências:
-
npm install
-
Verifique se os testes estão executando:
npm test
(os testes devem rodar e falhar)
⚠ Lembre-se das instruções da seção Entregáveis, especialmente no tópico O que deverá ser desenvolvido
!
1. Crie um container em modo interativo, sem rodá-lo, nomeando-o como 01container
e utilizando a imagem alpine
na versão 3.12
➕ Informações adicionais
O avaliador executará o comando no arquivo command01.dc
.
- O container não deve ser inicializado, somente criado;
- O container deve estar preparado para acesso interativo.
- O
nome
do container deve ser01container
; - O container deve usar a imagem
alpine
na versão3.12
; - O
status
do container deve sercreated
; - O container não deve estar em execução após ter sido criado.
➕ Informações adicionais
O avaliador executará o comando no arquivo command02.dc
.
- O container
01container
, que acabou de ser criado e está parado, deve ser iniciado; - Se o container tiver sido iniciado de modo interativo, ele deve se manter ativo ao iniciá-lo.
- O avaliador verificará se o container está parado;
- O avaliador executará o comando criado neste requisito;
- O container deve estar em execução.
➕ Informações adicionais
O avaliador executará o comando no arquivo command03.dc
.
- Praticamente todo comando de listagem no Docker possui uma forma de filtragem.
- O comando deve retornar uma lista contendo informações apenas do
01container
.
➕ Informações adicionais
O avaliador executará o comando no arquivo command04.dc
.
- O container deve estar rodando e você deve ser capaz de executar um comando nesse container.
- É possível fazer isso sem usar o comando
attach
.
- Que o comando retornará os dados corretos da
distro
no container:NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.12
➕ Informações adicionais
O avaliador executará os comandos nos arquivos command05.dc
e command03.dc
.
- O avaliador rodará o comando 5;
- O avaliador validará o processo com o comando 3.
➕ Informações adicionais
O avaliador executará o comando no arquivo command06.dc
.
- Que a imagem correta foi baixada;
- Que nenhum container foi iniciado para isso.
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
➕ Informações adicionais
O avaliador executará o comando no arquivo command07.dc
.
- Que o container foi iniciado corretamente;
- Que é possível ter acesso ao container pelo endereço
localhost:3000
; - Que a página retorna o valor esperado.
➕ Informações adicionais
O avaliador executará o comando no arquivo command08.dc
.
- Que não há nenhum container ativo após seu comando.
Escreva no arquivo command09.dc
um comando que fará o build
(documentação do comando) de uma imagem a partir do arquivo ./docker/todo-app/back-end/Dockerfile
, esta imagem deve ter o nome todobackend
.
No arquivo ./docker/todo-app/back-end/Dockerfile
escreva os comandos que farão com que a imagem:
- rode a partir da imagem do
node
na versão 14; - exponha a porta 3001;
- adicione o arquivo
node_modules.tar.gz
à imagem; - copie todos os arquivos da pasta
back-end
para a imagem. (você pode usar o caminho relativo, lembrando que aDockerfile
está em./docker/todo-app/back-end/Dockerfile
); - inicie a aplicação com o comando
npm start
.
➕ Informações adicionais
- Nesse contexto, deve-se criar um arquivo
Dockerfile
na pasta./docker/todo-app/back-end/
, que será utilizado com comando exigido no requisito; - Esse arquivo deve buscar reproduzir as etapas de
back-end
contidas noREADME.md
da pseudo-aplicação (também estão descritas na seçãoO que será testado
, do requisito) para que ele rode corretamente; - O avaliador executará o comando no arquivo
command09.dc
.
- Se existe um arquivo
Dockerfile
em./docker/todo-app/back-end/
:- O Dockerfile deve rodar uma imagem
node
utilizando a versão14
;- Recomenda-se o uso da variante
-alpine
, pois ela é otimizada para desempenho; - Lembre-se de consultar o README do
todo-app
para validar os requisitos da aplicação.
- Recomenda-se o uso da variante
- Deve estar com a porta
3001
exposta; - Deve adicionar o arquivo
node_modules.tar.gz
a imagem; - Deve copiar todos os arquivos da pasta
back-end
para a imagem; - Ao iniciar a imagem deve rodar o comando
npm start
.
- O Dockerfile deve rodar uma imagem
- Se ao buildar o Dockerfile o nome da imagem gerada é igual a
todobackend
.
10. Gere uma build a partir do Dockerfile do front-end
do todo-app
nomeando a imagem para todofrontend
Escreva no arquivo command10.dc
um comando que fará o build
(documentação do comando) de uma imagem a partir do arquivo ./docker/todo-app/front-end/Dockerfile
, esta imagem deve ter o nome todofrontend
.
No arquivo ./docker/todo-app/front-end/Dockerfile
escreva os comandos que farão com que a imagem:
- rode a partir da imagem do
node
na versão 14; - exponha a porta 3000;
- adicione o arquivo
node_modules.tar.gz
à imagem; - copie todos os arquivos da pasta
front-end
para a imagem. (você pode usar o caminho relativo, lembrando que aDockerfile
está em./docker/todo-app/front-end/Dockerfile
); - inicie a aplicação com o comando
npm start
.
➕ Informações adicionais
- Nesse contexto, deve-se criar um arquivo
Dockerfile
na pasta./docker/todo-app/back-end/
, que será utilizado com comando exigido no requisito; - Esse arquivo deve buscar reproduzir as etapas de
front-end
contidas noREADME.md
da pseudo-aplicação (também estão descritas na seçãoO que será testado
, do requisito) para que ele rode corretamente; - O avaliador executará o comando no arquivo
command10.dc
.
- Se existe um arquivo
Dockerfile
em./docker/todo-app/front-end/
:- O
Dockerfile
pode rodar uma imagemnode
utilizando a versão14
;- Recomenda-se o uso da variante
-alpine
, pois ela é otimizada para desempenho; - Lembre-se de consultar o README do
todo-app
para validar os requisitos da aplicação.
- Recomenda-se o uso da variante
- Deve estar com a porta
3000
exposta; - Deve adicionar o arquivo
node_modules.tar.gz
a imagem, de maneira que ele seja extraído dentro docontainer
; - Deve copiar todos os arquivos da pasta
front-end
para a imagem; - Ao iniciar a imagem deve rodar o comando
npm start
;
- O
- Se ao buildar o
Dockerfile
o nome da imagem gerada é igual atodofrontend
.
Escreva no arquivo command11.dc
um comando que fará o build
(documentação do comando) de uma imagem a partir do arquivo ./docker/todo-app/tests/Dockerfile
, esta imagem deve ter o nome todotests
.
No arquivo ./docker/todo-app/tests/Dockerfile
escreva os comandos que farão com que a imagem:
- adicione o arquivo
node_modules.tar.gz
à imagem; - copie todos os arquivos da pasta
tests
para a imagem. (você pode usar o caminho relativo, lembrando que aDockerfile
está em./docker/todo-app/tests/Dockerfile
); - inicie os testes com o comando
npm test
.
➕ Informações adicionais
- Nesse contexto, deve-se criar um arquivo
Dockerfile
na pasta./docker/todo-app/back-end/
, que será utilizado com comando exigido no requisito; - Esse arquivo deve buscar reproduzir as etapas de
testes
contidas noREADME.md
da pseudo-aplicação (também estão descritas na seçãoO que será testado
, do requisito) para que ele rode corretamente; - O avaliador executará o comando no arquivo
command11.dc
.
- A aplicação
todotests
só funciona corretamente se estiver dockerizada e dentro de uma rede docker configurada corretamente.
- Se existe um arquivo
Dockerfile
em./docker/todo-app/tests/
:- Deve adicionar o arquivo
node_modules.tar.gz
a imagem; - Deve copiar todos os arquivos da pasta
tests
para a imagem; - Ao iniciar a imagem deve rodar o comando
npm test
;
- Deve adicionar o arquivo
- Se ao buildar o Dockerfile o nome da imagem gerada é igual a
todotests
.