Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] docker-entrypoint-initdb.d permission denied

Olá,

Quando faço o comando docker compose up recebo esse erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Meu docker compose:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Alguém pode me ajudar?

2 respostas

Oii, Bianca. Tudo bem?

O problema está relacionado com permissões no diretório docker-entrypoint-initdb.d. Esse diretório é utilizado pelo Postgres para executar scripts de inicialização.

Você pode tentar algumas abordagens para lidar com essa situação. Como por exemplo:

  • Verificar permissões do diretório: checar se o docker-entrypoint-initdb.d e seus arquivos possuem as permissões certas. Você pode ajustar as permissões com este comando:
sudo chmod -R 755 /caminho/para/docker-entrypoint-initdb.d
sudo chown -R $USER:$USER /caminho/para/docker-entrypoint-initdb.d
  • Verificar o usuário que está rodando o container: o usuário que roda o container precisa ter as permissões necessárias para acessar o diretório. No docker-compose.yml, você usou o usuário root para o Postgres e isso normalmente já funciona, mas você pode tentar rodar o container com permissões elevadas, deste modo:
services:
  database:
    image: postgres:15
    container_name: database-api-cursos
    restart: unless-stopped
    environment:
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=h5uZM2kEnp8042
      - PGDATA=/var/lib/postgresql/data
    ports:
      - '5432:5432'
    volumes:
      - ./postgres/db:/docker-entrypoint-initdb.d
      - ./postgres/data:/var/lib/postgresql/data
    user: root
  • Verificar se os arquivos de inicialização estão corretos: verifique se os arquivos de inicialização no diretório docker-entrypoint-initdb.d estão corretos e se possuem permissões de execução. Por exemplo:
sudo chmod +x /caminho/para/docker-entrypoint-initdb.d/*
  • Reiniciar o Docker: às vezes reiniciar o Docker pode resolver problemas de permissão. Você pode fazer isso deste jeito:
sudo systemctl restart docker

Se outra dúvida surgir, estamos por aqui.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.
solução!

Olá, Muito obrigada. Consegui resolver.