Pra quem tá começando o curso agora o postgres está na versao latest na solucao do topico anterior. Basta pegar a solucao anterior e setar a versao do postgres para a 15. Se nao fizer isso nao vai inicializar vai dar um erro de PATH .
version: '3.8'
services:
database:
image: postgres:15
container_name: database-api-cursos
restart: unless-stopped
healthcheck:
test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]
timeout: 45s
interval: 10s
retries: 10
environment:
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/15/bin
- HOSTNAME=9226aec39768
- APP_DB_USER=alura
- APP_DB_PASS=nJ6vsW37rCd1v88
- APP_DB_NAME=logsdb
- POSTGRES_USER=root
- POSTGRES_PASSWORD=h5UzM2kEnp8Q42
- GOSU_VERSION=1.14
- LANG=en_US.utf8
- PG_MAJOR=15
- PG_VERSION=15.1-1.pgdg110+1
- PGDATA=/var/lib/postgresql/data HOME=/root
ports:
- '5432:5432'
volumes:
- ./postgres/db:/docker-entrypoint-initdb.d/
- ./postgres/data:/var/lib/postgresql/data
mesmo inicializando continua com problemas dizendo que o public nao tem privilegios. Entao baixa o arquivo 01-init.sh disponibilizado no curso e atualize para:
#!/bin/bash
set -e
export PGPASSWORD=$POSTGRES_PASSWORD;
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER $APP_DB_USER WITH PASSWORD '$APP_DB_PASS';
CREATE DATABASE $APP_DB_NAME;
GRANT ALL PRIVILEGES ON DATABASE $APP_DB_NAME TO $APP_DB_USER;
\c $APP_DB_NAME
GRANT ALL PRIVILEGES ON SCHEMA public TO $APP_DB_USER;
EOSQL
fazendo isso vai funcionar direitinho como funcionou no meu.