os contêineres parecem estar morrendo logo após serem iniciados
os contêineres parecem estar morrendo logo após serem iniciados
Oi, Sifronio, tudo bem?
Pelo que você disse, há alguns pontos a verificar:
Estrutura do docker-compose.yml
:
Um erro comum é a indentação incorreta da seção app
. O arquivo deve estar assim (observe o alinhamento):
services:
postgres:
image: postgres:16
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_DB: root
volumes:
- ./postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U root -d root"]
interval: 5s
timeout: 5s
retries: 20
app:
image: golang:1.22
working_dir: /app
command: ["sh", "-c", "go mod download && go run main.go"]
volumes:
- ./:/app
ports:
- "8080:8080"
depends_on:
postgres:
condition: service_healthy
restart: on-failure
Esse ajuste garante que a aplicação só inicie quando o Postgres estiver pronto.
Logs para confirmar a causa:
Rode os comandos abaixo para ver por que o container cai:
docker compose logs -f app
docker compose logs -f postgres
Volumes do Postgres:
Se o banco já tiver dados antigos ou corrompidos, o container pode falhar. Nesse caso, limpe tudo antes de tentar novamente:
docker compose down -v
docker compose up -d --build
Porta em conflito:
Verifique se não há outro processo usando a 8080. Para testar, altere no docker-compose.yml
para:
ports:
- "8081:8080"
e acesse http://localhost:8081/alunos
.
Próximos passos:
docker-compose.yml
.docker compose logs -f app
e compartilhe a saída final. Assim será possível identificar exatamente o que está encerrando o container.