Commit e1737335 authored by Pércio Reinert Neves da Silva's avatar Pércio Reinert Neves da Silva
Browse files

Merge branch 'feature/docker-compose' into 'main'

Docker compose docs

See merge request !3
parents fe09425d 1337d4e7
Showing with 43 additions and 5 deletions
+43 -5
......@@ -22,11 +22,52 @@ https://www.docker.com
## ✅ Configurando o ambiente
Para executar a aplicação temos duas opções, configurar o ambiente python e o banco de dados manualmente (que pode ser feito com docker ou não), ou utilizar o `docker compose`.
Antes de tudo, clone o repositório e execute todos os comandos no diretório do projeto:
```bash
# Clone o repositório
git clone https://tools.ages.pucrs.br/plataforma-de-marketing-e-sales-analytics/revforce-api.git
cd revforce-api
```
### 🐋 Utilizando o `docker compose` (mais fácil)
O [`docker compose`](https://docs.docker.com/compose/) é uma ferramenta utlizada para definir e executar aplicações com múltiplos containers/serviços. Com ele, podemos escrever um arquivo de configuração YAML que define todos os serviços, volumes e redes do projeto, e o docker lida com o ciclo de vida de todos os componentes.
Primeiramente, verifique se o compose está instalado ([documentação](https://docs.docker.com/compose/install/)):
> Se você tem o docker desktop, o compose vem junto por padrão
```bash
# Verifique a instalacao do docker compose
docker compose version
```
Com o compose instalado corretamente, basta executar o seguinte comando para executar toda a aplicação, banco de dados e api:
```bash
# Sobe todos os servicos necessarios
docker compose up
```
> Na primeira vez, a aplicação deve levar algum tempo para instalar todas as dependencias.
Para parar a aplicação, pressione `CTRL-C` no terminal.
Para remover todos os dados do banco e começar do zero, execute (não deve ser necessário, mas é bom saber):
```bash
# Apaga todos os dados
docker compose down -v
```
> NOTA: quando utilizar o `docker`/`docker compose` para rodar a aplicação, as dependencias não serão instaladas no seu sistema de arquivos, então a IDE não vai reconheçer os pacotes importados. Para resolver isso, execute os primeiros comandos da configuração manual, mas ainda use o `docker` para rodar a aplicação.
### 💪 Configuração manual
```bash
# Instale poetry (gerenciador de dependências)
pip install poetry
......
......@@ -2,8 +2,6 @@ services:
db:
image: postgres:15
container_name: postgres_db
# Mude para a sua plataforma
platform: linux/arm64
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
......@@ -24,11 +22,10 @@ services:
build: .
container_name: revforce-api
depends_on:
- db
db:
condition: service_healthy
environment:
DATABASE_URL: postgresql+asyncpg://postgres:postgres@db:5432/revforce
# Mude para a sua plataforma
platform: linux/arm64
ports:
- "8000:8000"
networks:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment