Este é um guia para instalar e executar o projeto Bora_la localmente usando Docker e Docker Compose. O projeto será construído com Django, mas não é necessário instalar o framework localmente na máquina, vamos ter tudo dentro do container da aplicação, e no container do banco de dados.
Docker é uma plataforma que permite desenvolver, implantar e executar aplicativos em contêineres. Contêineres são ambientes isolados que empacotam um aplicativo com todas as dependências necessárias. O Docker Compose é uma ferramenta para definir e executar aplicativos multi-container usando arquivos de configuração YAML, no nosso caso, usamos ele para subir conjuntamente a aplicação e o banco de dados.
Siga as instruções no site oficial do Docker para o seu respectivo SO: Docker Installation. Nos links úteis tem artigos e guias que vão ajudar no processo!
O Docker Compose normalmente já está incluído na instalação do Docker Desktop para Windows e macOS. Para sistemas Linux, siga as instruções no site oficial: Docker Compose Installation.
Uma ferramente legal para lidar com container é um plugin direto no VScode, principalmente se voce trabalhar com linux. No windows, o docker desktop tem uma interface que facilita o uso. Procure o plugin "Docker" da Microsoft,após a instalação, você verá um ícone de Docker na barra lateral esquerda do VS Code.
Antes de subir o projeto Bora_la, certifique-se de que seu ambiente de desenvolvimento atende aos seguintes requisitos:
- Docker e Docker Compose: Instalados e configurados
As dependencias do projeto são instaladas no container a partir da configuração do Dockerfile.
-
Clone este repositório do projeto:
git clone <URL do Repositório>
-
Crie um novo arquivo '.env' na raiz do projeto. Copie os dados do '.env.sample'.
-
Construa e execute os contêineres usando o Docker Compose com a opção -d para executar em segundo plano e liberar o terminal. Para isso, abra o terminal dentro da pasta do projeto que vc acabou de clonar e rode:
docker-compose build docker-compose up -d P.S: dependendo da versão, pode ser sem o hifen: 'docker compose up -d'
-
Vamos precisar agora criar o banco do nosso app. Entre no shell do container "postgres:12.1" e rode os comandos
psql -U postgres CREATE USER postgres WITH ENCRYPTED PASSWORD 'postgres'; CREATE DATABASE db_bora_la; GRANT ALL PRIVILEGES ON DATABASE db_bora_la TO postgres; \l
-
Agora que o banco foi criado, de um reestart no container do projeto "projeto-empreendedor-bora_la" para que ele consiga se conectar ao banco.
-
Abra o shell do container do projeto e rode os comandos:
python manage.py makemigrations python manage.py migrate python manage.py createsuperuser --username=admin [email protected] use a senha padrao "admin" e digite "y" no bypass de segurança python populate_db.py para popular o banco com as categorias default
-
Se tudo estiver certo, o projeto estará disponível em http://localhost:8000/ . Se der erro, tente restartar ambos os containers. Para a area admin, lembre-se de usar o user admin com a senha admin que vc recem criou.
-
Para rodar os testes dentro do container, rode no seu terminal:
docker exec projeto-empreendedor-bora_la-1 pytest -vv
-
Para ver os logs do container, utilize o seguinte comando ou o plugin do docker:
docker-compose logs bora_la
-
Para parar os contêineres, use o comando:
docker-compose down -v
-
Para entrar no shell do container, use o seguinte comando:
docker-compose exec bora_la sh
Tutorial da Documentação-é bem bom
Tutorial básico:criando um blog
Atenção! Para manter a qualidade do codigo, siga esses passos antes de subir suas alterações pro repositório:
- rode o black
- rode os testes
- commit usando Conventional Commits
O Conventional Commits é um padrão para mensagens de commit que facilita a leitura e a geração automática de changelogs. Cada mensagem de commit deve seguir o seguinte formato:
<tipo>
: <descrição>
O <tipo>
pode ser um dos seguintes:
- feat: para novas funcionalidades
- fix: para correção de bugs
- docs: para alterações na documentação
- style: para alterações que não afetam o código (espaços em branco, formatação, etc)
- refactor: para refatoração de código
- test: para adicionar ou modificar testes
- chore: para alterações em tarefas de manutenção
A <descrição>
deve ser clara e concisa, descrevendo o que a alteração faz e deve ser menor que 70 caracteres. Veja os exemplos:
feat: Adicionar autenticação de usuários
fix: Corrigir erro de digitação no formulário de login
docs: Atualizar README com instruções de instalação
style: aplica correcoes black
chore: Atualizar dependências do projeto
refactor: Dividir função grande em funções menores
É uma ferramenta que formata automaticamente o código Python seguindo um conjunto consistente de regras de estilo (customizado no arquivo pyproject.toml). Isso ajuda a manter um código bem formatado e de fácil leitura.É altamente recomendado executar o Black antes de fazer o commit do código. Para usar o Black, execute algum dos comandos no terminal do container:
black nome_do_arquivo.py # formata o código do arquivo especificado
black . # formata todo o repositório