Banco de dados Posrgres com Docker
- Instale o Docker Desktop ou outro gerenciador de containers (caso tenha alguma limitação com o uso de licenças).
- Crie o arquivo
docker-compose.yaml
com o conteúdo abaixo
version: '3.8'
services:
postgres:
image: postgres:latest
container_name: postgres_db
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: screenmatch
ports:
- "5432:5432"
volumes:
- ./postgres_data:/var/lib/postgresql/data
- Para executar, abra o terminal no diretório em que foi criado o arquivo docker-compose.yaml e execute
docker-compose up
. - Repare que será criado um diretório postgres_data, para de fato persistir o banco de dados fora do container. Caso prefira começar com um banco zerado sempre que iniciar o container, basta remover o item volumes.
Sobre OpenAPI Platform
- https://platform.openai.com/
- Para criar uma chave para si, entre ou cadastre-se.
- Navegue pelo menu à esquerda:
- Organization/Billing: Registre uma forma de pagamento. Em 21/04/2025, foi necessário colocar um crédito de no mínimo 5 dólares (USD). É possível definir alertas e cobrança automática, esteja atento(a) a essas configurações.
- Organization/API Keys : Crie uma API Key. Guarde em local seguro para que não seja usada por terceiros sem seu conhecimento, pois isso pode gerar custos. Não é possível consultar chaves geradas previamente.
- Organization/Limits: consulte modelos em uso e respectivos custos. Atualize o modelo usado na aplicação, classe
br.com.alura.screenmatch.service.ConsultaChatGPT
linha 12. O modelo "text-davinci-003" estava descontinuado em 21/04/2025.
Variáveis de ambiente
- Para executar a aplicação, é necessário definir algumas variáveis de ambiente para acesso ao banco e para acesso à API do ChatGPT.
- É possível configurar o VSCode para iniciar a aplicação Java com as variáveis de ambiente definidas, sem ter que exportá-las uma a uma via terminal:
- Acesse Run/Add Configuration para criar o arquivo
.vscode/launch.json
. - Adicione as variáveis consultadas pela aplicação no application.properties e via System.getProperty o atributo
env
. Exemplo:
- Acesse Run/Add Configuration para criar o arquivo
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Current File",
"request": "launch",
"mainClass": "${file}"
},
{
"type": "java",
"name": "ScreenmatchApplication",
"request": "launch",
"mainClass": "br.com.alura.screenmatch.ScreenmatchApplication",
"projectName": "screenmatch",
"env": {
"DB_PASSWORD": "postgres",
"DB_USER": "postgres",
"DB_NAME": "screenmatch",
"DB_HOST": "localhost:5432",
"OPENAI_APIKEY": "sua-api-key"
}
}
]
}