Responsável: Tsu
Esse arquivo dá um pequeno resumo das partes mais importantes dos contâiners do aplicativo. A aplicação se baseia em 3 contâiners:
graph TD
usuario[usuario] --> front[front_end]
usuario[usuario] --> getby_backend
subgraph backend_network
direction LR
getby_backend[getby_backend] --> getby_database[getby_database]
end
style backend_network fill:#fff,stroke:#97f,stroke-width:2px,color:#000
O docker-comose
permite o uso de profiles, os profiles vão permitir escolher quais containers vão ser executados. Foi criado dois profiles:
- Deploy
- Test
Para rodar o profile deploy basta rodar o comando:
make start
O profile deploy
vai ser usado para rodar a aplicação que seria usada em produção. Os containers backend
, frontend
e database
vão ser executados.
Imagem: node:16
Vaiáveis de ambiente:
NODE_ENV
=productionNODE_CONFIG_LOGLEVEL
=debugNPM_CONFIG_PREFIX
=/home/getby/.npm-global
Imagem base: python:3.10-slim
Redes:
database
: vai conectar o banco de dados com o backend
Vaiáveis de ambiente:
UVICORN_PORT
=8000UVICORN_HOST
=0.0.0.0UVICORN_WORKERS
=1POSTGRES_DB_FILE
=${POSTGRES_DB_FILE:?err}POSTGRES_USER_FILE
=${POSTGRES_USER_FILE:?err}POSTGRES_PASSWORD_FILE
=${POSTGRES_PASSWORD_FILE:?err}
Secrets:
db
: database/postgres-db.txtuser
: database/postgres-user.txtsenha
: database/postgres-passwd.txt
Imagem base: postgres:14.2-alpine
Redes:
database
: vai conectar o banco de dados com o backend
Volumes:
postgres_db
: armazenar o banco de dados em um volume persistente
Vaiáveis de ambiente:
POSTGRES_DB_FILE
=${POSTGRES_DB_FILE:?err}POSTGRES_USER_FILE
=${POSTGRES_USER_FILE:?err}POSTGRES_PASSWORD_FILE
=${POSTGRES_PASSWORD_FILE:?err}
Secrets:
db
: database/postgres-db.txtuser
: database/postgres-user.txtsenha
: database/postgres-passwd.txt
Para rodar o profile test basta rodar o comando:
make test
O comando make test
vai sempre limpar todos os containers e vai executar os containers backend-test
e database
.
O container backend-test
vai executar os testes usando o framework pytest
. Mais informações podem ser encontradas aqui
Imagem base: python:3.10-slim
Redes:
database
: vai conectar o banco de dados com o backend
Vaiáveis de ambiente:
UVICORN_PORT
=8000UVICORN_HOST
=0.0.0.0UVICORN_WORKERS
=1POSTGRES_DB_FILE
=${POSTGRES_DB_FILE:?err}POSTGRES_USER_FILE
=${POSTGRES_USER_FILE:?err}POSTGRES_PASSWORD_FILE
=${POSTGRES_PASSWORD_FILE:?err}
Secrets:
db
: database/postgres-db.txtuser
: database/postgres-user.txtsenha
: database/postgres-passwd.txt
Imagem base: postgres:14.2-alpine
Redes:
database
: vai conectar o banco de dados com o backend
Volumes:
postgres_db
: armazenar o banco de dados em um volume persistente
Vaiáveis de ambiente:
POSTGRES_DB_FILE
=${POSTGRES_DB_FILE:?err}POSTGRES_USER_FILE
=${POSTGRES_USER_FILE:?err}POSTGRES_PASSWORD_FILE
=${POSTGRES_PASSWORD_FILE:?err}
Secrets:
db
: database/postgres-db.txtuser
: database/postgres-user.txtsenha
: database/postgres-passwd.txt