Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

295
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!