Este é um projeto que utiliza Docker para criar uma aplicação web de lista de tarefas (todo list).
O objetivo deste projeto é praticar os conceitos de Docker, como imagens, containers, volumes e redes. A aplicação web é composta por serviços: um front-end em React, um back-end em Node.js e um um aplicativo de teste que valida se as aplicações estão se comunicando. Cada serviço roda em um container separado e se comunicam por meio de uma rede interna criada pelo Docker. Os dados da aplicação são persistidos em um volume.
A aplicação web permite ao usuário:
- Criar um contêiner Docker para uma aplicação de front-end;
- Criar um contêiner Docker para uma aplicação de back-end;
- Criar um contêiner Docker para uma aplicação de testes;
- Orquestrar os três contêineres utilizando o Docker compose.
As principais tecnologias utilizadas neste projeto são:
- Docker
- Docker-compose
Para instalar e executar o projeto localmente, você precisa ter o Docker instalado na sua máquina. Depois, siga os seguintes passos:
- Clone o repositório do GitHub:
git clone git@github.com:brenolg/Docker-To-Do-List.git
- Os comandos estão localizados na pasta docker-commands
- Construa as imagens e contêineres dos serviços com os comandos no docker
- Crie um container em modo interativo, sem rodá-lo, nomeando-o como 01container e utilizando a imagem alpine na versão 3.12
- Inicie o container 01container
- Liste os containers filtrando pelo nome 01container
- Execute o comando cat /etc/os-release no container 01container sem se acoplar a ele
- Remova o container 01container
- Faça o download da imagem nginx com a versão 1.21.3-alpine sem criar ou rodar um container
- 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
- Pare o container 02images que está em andamento
- Gere uma build a partir do Dockerfile do back-end do todo-app nomeando a imagem para todobackend
- Gere uma build a partir do Dockerfile do front-end do todo-app nomeando a imagem para todofrontend
- Gere uma build a partir do Dockerfile dos testes do todo-app nomeando a imagem para todotests
- Suba uma orquestração em segundo plano com o docker-compose de forma que backend, frontend e tests consigam se comunicar
Este projeto foi desenvolvido como parte do curso de Desenvolvimento de Software da Trybe. Agradeço à Trybe pela oportunidade de aprender e praticar Docker e outras tecnologias.