Este projeto demonstra a criação de um aplicativo web simples usando Flask e PostgreSQL, encapsulado em containers Docker. O objetivo é apresentar os conceitos básicos de containers e como eles podem ser utilizados para desenvolver e implantar aplicações de forma eficiente e escalável.
A aplicação web trata-se de um formulário simples em HTML e Flask que armazena os dados em um banco de dados PostgreSQL.
- app-flask: Contém o código da aplicação Flask.
- banco-de-dados: Contém o servidor PostgreSQL.
-
Clone este repositório:
git clone https://github.com/angelicasalvino/projeto-final-conteiner-docker-ada.git
-
Acesse o diretório do projeto:
cd projeto-final-conteiner-docker-ada
-
Construa as imagens Docker:
docker-compose build
-
Inicie os containers:
docker-compose up
-
Acesse a aplicação web em seu navegador:
http://localhost:5000
- O arquivo
docker-compose.yml
define os containers e suas configurações. - O arquivo
requirements.txt
lista as dependências da aplicação Flask. - O script
app.py
implementa a lógica da aplicação web. - O banco de dados PostgreSQL é configurado para usar autenticação por senha.
- O arquivo
docker-compose.yml
utiliza o Docker Compose para definir e gerenciar os containers da aplicação. - Volumes: Os volumes armazenam dados entre reinicializações dos containers sem que esses sejam perdidos. Neste projeto, o volume
postgres_data
armazena os dados do banco de dados PostgreSQL. - Redes: As redes permitem que os containers se comuniquem entre si. A rede
projeto-network
é criada para que os containersapp-flask
ebanco-de-dados
possam se comunicar.
- Este projeto é apenas um exemplo simples para fins didáticos e para entrega final do projeto do curso de conteinerização.
- Em projetos reais, é recomendável usar práticas de segurança mais robustas, como autenticação e criptografia de dados.
- O Docker Hub oferece recursos para gerenciar e distribuir imagens Docker: Docker Hub
As imagens deste projeto estão disponíveis no Docker Hub: Docker Hub
Sinta-se à vontade para contribuir com este projeto! Envie suas sugestões e pull requests para o repositório GitHub.
Este projeto está licenciado sob a licença MIT.