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

containers do rabbitmq, postgre e mongo não inicializaram

Conforme o print abaixo, os containers do rabbitmq, postgre e mongo não inicializaram:

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

Creio que seja por isso que quando eu rodo o comando 'docker-compose up --build', o consumer-academico fica em retrying eterno.

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

Alguém consegue me ajudar com essa questão? Abaixo estão os logs desses três containers:

mongo-mkt

warning: initdb logs cannot write to '/proc/1/fd/1', so they are in '/data/db/docker-initdb.log' instead

about to fork child process, waiting until server is ready for connections.

forked process: 28

ERROR: child process failed, exited with 51

To see additional information in this output, start without the "--fork" option.

warning: initdb logs cannot write to '/proc/1/fd/1', so they are in '/data/db/docker-initdb.log' instead

about to fork child process, waiting until server is ready for connections.

forked process: 28

ERROR: child process failed, exited with 51

To see additional information in this output, start without the "--fork" option.

warning: initdb logs cannot write to '/proc/1/fd/1', so they are in '/data/db/docker-initdb.log' instead

about to fork child process, waiting until server is ready for connections.

forked process: 28

ERROR: child process failed, exited with 51

To see additional information in this output, start without the "--fork" option.

postgre-academico

could not execute command ""/usr/lib/postgresql/17/bin/postgres" -V": Cannot allocate memory

initdb: error: program "postgres" is needed by initdb but was not found in the same directory as "/usr/lib/postgresql/17/bin/initdb"

could not execute command ""/usr/lib/postgresql/17/bin/postgres" -V": Cannot allocate memory

initdb: error: program "postgres" is needed by initdb but was not found in the same directory as "/usr/lib/postgresql/17/bin/initdb"

could not execute command ""/usr/lib/postgresql/17/bin/postgres" -V": Cannot allocate memory

initdb: error: program "postgres" is needed by initdb but was not found in the same directory as "/usr/lib/postgresql/17/bin/initdb"

rabbitmq

Failed to create thread: Operation not permitted (1)

Aborted

3 respostas

oi, Alexandre! Aqui estão as possíveis soluções:

  1. MongoDB:

    • Erro: child process failed, exited with 51
    • Solução: Verifique se há permissões corretas no diretório de dados do MongoDB (/data/db/). Tente limpar o volume ou configurar corretamente os volumes no docker-compose.yml para garantir que o MongoDB tenha acesso adequado ao diretório de dados.
  2. PostgreSQL:

    • Erro: Cannot allocate memory e program "postgres" is needed by initdb
    • Solução: Este erro geralmente ocorre devido à falta de memória disponível no seu sistema. Aumente os recursos de memória do Docker (via docker-compose.yml ou configuração do Docker Desktop) ou libere memória no seu sistema.
  3. RabbitMQ:

    • Erro: Failed to create thread: Operation not permitted (1)
    • Solução: Este erro pode ser causado por restrições de segurança no Docker. Verifique se o Docker tem permissões adequadas para criar threads. Tente adicionar a opção --privileged ao seu container RabbitMQ ou revise as configurações de segurança do Docker.

Além disso, algumas verificações gerais:

  • Docker Compose: Certifique-se de que seu docker-compose.yml está configurado corretamente, especialmente em relação aos volumes e redes.
  • Logs: Use docker logs <container_name> para capturar logs mais detalhados e entender se há mais erros específicos.
solução!

Eu estava utilizando uma versão mais antiga do Docker que foi baixada em um dos cursos de Docker da Alura, e creio que estava ocorrendo problema de incompatibilidade entre a versão do Docker e a imagem do mongo que estava sendo baixada, que por não estar especificado a versão, acabava baixando a latest...

Após atualizar meu Docker e refazer todo o processo, consegui deixar todos os containers rodando com sucesso.

Que bom que conseguiu, Alexandre!