Skip to content
This repository has been archived by the owner on Apr 3, 2023. It is now read-only.

Latest commit

 

History

History
147 lines (93 loc) · 3.33 KB

DOCKER.md

File metadata and controls

147 lines (93 loc) · 3.33 KB

Docker

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
Loading

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

Profile: Deploy

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.

Frontend

Imagem: node:16

Vaiáveis de ambiente:

  • NODE_ENV=production
  • NODE_CONFIG_LOGLEVEL=debug
  • NPM_CONFIG_PREFIX=/home/getby/.npm-global

Backend

Imagem base: python:3.10-slim

Redes:

  • database: vai conectar o banco de dados com o backend

Vaiáveis de ambiente:

  • UVICORN_PORT=8000
  • UVICORN_HOST=0.0.0.0
  • UVICORN_WORKERS=1
  • 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.txt
  • user: database/postgres-user.txt
  • senha: database/postgres-passwd.txt

Database

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.txt
  • user: database/postgres-user.txt
  • senha: database/postgres-passwd.txt

Profile: Teste

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

Backend-test

Imagem base: python:3.10-slim

Redes:

  • database: vai conectar o banco de dados com o backend

Vaiáveis de ambiente:

  • UVICORN_PORT=8000
  • UVICORN_HOST=0.0.0.0
  • UVICORN_WORKERS=1
  • 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.txt
  • user: database/postgres-user.txt
  • senha: database/postgres-passwd.txt

Database

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.txt
  • user: database/postgres-user.txt
  • senha: database/postgres-passwd.txt