Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

298
Visualizações
Cómo iniciar mongodb desde dockerfile

Estoy construyendo un dockerfile. Pero me encuentro con un problema. Dice que :

/bin/sh: 1: mongod: no encontrado

Mi archivo acoplable:

 FROM mongo:latest FROM node RUN mongod COPY . . RUN node ./scripts/import-data.js

Esto es lo que sucede cuando se compila la ventana acoplable:

 Sending build context to Docker daemon 829.5MB Step 1/8 : FROM rabbitmq ---> e8261c2af9fe Step 2/8 : FROM portainer/portainer ---> 00ead811e8ae Step 3/8 : FROM docker.elastic.co/elasticsearch/elasticsearch:6.5.1 ---> 32f93c89076d Step 4/8 : FROM mongo:latest ---> 5976dac61f4f Step 5/8 : FROM node ---> b074182f4154 Step 6/8 : RUN mongod ---> Running in 0a4b66a77178 /bin/sh: 1: mongod: not found The command '/bin/sh -c mongod' returned a non-zero code: 127

Alguna idea ?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

El problema es que está utilizando dos instrucciones FROM , lo que se conoce como multi-stage build . La imagen final se basará en la imagen del node que no contiene la base de datos mongo .

* Editar *

Aquí hay más detalles sobre lo que está sucediendo:

DE mongo: más reciente

  • la imagen base es mongo:latest

DESDE nodo

  • ahora la imagen base es node:latest . La imagen anterior está parada ahí...

EJECUTAR mongod

COPIAR . .

EJECUTAR nodo ./scripts/import-data.js

  • ahora ejecuta mongod y los otros comandos en su imagen final que se basa en el node (que no contiene mongo)
over 4 years ago · Santiago Trujillo Relatório

0

Ocurre porque se deben usar múltiples instrucciones FROM para Multistage Build (consulte la documentación) y NO para la creación de imágenes que contienen todas las aplicaciones actuales.

Las compilaciones de varias etapas le brindan la posibilidad de delegar el proceso de creación en el entorno del contenedor sin la instalación de la aplicación local.

 FROM rabbitmq ...some instructions require rabbitmq... FROM mongo:latest ...some instructions require mongo...

En otras palabras, si desea crear una imagen con rabbitmq, mongo y otra aplicación, debe elegir la imagen e instalar las aplicaciones manualmente.

over 4 years ago · Santiago Trujillo Relatório

0

Utilice docker-compose ( https://docs.docker.com/compose/install/ ) para ejecutar las imágenes en lugar de intentar crear una nueva imagen a partir de una colección de imágenes existentes. Su docker-compose.yml podría verse así:

 version: '3.7' services: portainer: image: 'portainer/portainer' container_name: 'portainer' hostname: 'portainer' domainname: 'example.com' volumes: - '/var/run/docker.sock:/var/run/docker.sock' - 'portainer_data:/data' ports: - '9000:9000' rabbitmq: image: 'rabbitmq' container_name: 'rabbitmq' hostname: 'rabbitmq' domainname: 'example.com' volumes: - 'rabbitmq_data:/var/lib/rabbitmq' elasticsearch: image: 'elasticsearch:7.1.1' container_name: 'elasticsearch' hostname: 'elasticsearch' domainname: 'example.com' environment: - 'discovery.type=single-node' volumes: - 'elasticsearch_data:/usr/share/elasticsearch/data' ports: - '9200:9200' - '9300:9300' node: image: 'node:12' container_name: 'node' hostname: 'node' domainname: 'example.com' user: 'node' working_dir: '/home/node/app' environment: - 'NODE_ENV=production' volumes: - './my-app:/home/node/app' ports: - '3000:3000' command: 'npm start' mongo: image: 'mongo' container_name: 'mongo' hostname: 'mongo' domainname: 'example.com' restart: 'always' environment: - 'MONGO_INITDB_ROOT_USERNAME=root' - 'MONGO_INITDB_ROOT_PASSWORD=example' volumes: - 'mongo_data:/data/db' volumes: portainer_data: rabbitmq_data: elasticsearch_data: mongo_data:
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda