Ola
Gabriel, o erro que aparece no log na verdade são dois problemas diferentes, e eles acabam se somando para impedir que o docker compose up suba corretamente.
O primeiro problema é do PostgreSQL.
A mensagem indica que já existe um volume com dados de uma versão antiga do Postgres, e agora o Docker está tentando subir uma versão mais nova (18+) usando o mesmo volume. O Postgres não permite isso sem um processo de upgrade (pg_upgrade).
Isso normalmente acontece quando alguém já rodou o projeto antes, depois atualizou a imagem do Postgres e manteve o volume antigo.
Como é um ambiente de curso, a forma mais simples de resolver é apagar o volume antigo e subir tudo do zero. Você pode fazer assim:
docker compose down -v
docker compose up --build
Isso remove os volumes e recria o banco do zero, evitando o conflito de versões.
O segundo problema é na aplicação Go.
Esse erro aqui é o mais importante para o container da API não subir:
no required module provides package github.com/guilhermeonrails/api-go-gin/database
Isso indica que o repositório usado no curso não está mais disponível ou mudou de estrutura. O Go tenta baixar esse módulo, mas ele simplesmente não existe mais no GitHub com esse caminho. Por isso, mesmo instalando dependências localmente, o build da imagem falha.
Ou seja:
- O Postgres falha por causa de volume antigo.
- A aplicação falha porque o repositório da API está indisponível ou quebrado.
Nesse caso, o problema não é erro seu. É um bug do material do curso, abre o ticket