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

474
Views
la imagen de mongo docker no ejecuta el script después de crear

Estoy usando docker-compose para crear 3 contenedores diferentes para una instancia de frontend, backend y mongo. los 3 se están ejecutando y están conectados entre ellos, pero necesito crear un usuario administrador en la base de datos tan pronto como se ejecute la instancia de mongo. De acuerdo con la documentación de la imagen de mongo, cada secuencia de comandos ubicada en docker-entrypoint-initdb.d debe ejecutarse después de crear la instancia. Como ya dije, estoy usando docker compose, por lo que no hay Dockerfile para mongo, solo un servicio que usa la imagen oficial de mongo, así que configuré un volumen para este archivo [no sé si por eso el script no se está ejecutando, porque es un enlace simbólico en lugar de un archivo copiado]. Así que traté de ejecutar un comando para ejecutar este script pero no funciona, pero si luego hago un docker exec a la instancia de mongodb y ejecuto el script por mí mismo, funcionará y creará el usuario administrador.

Entonces, ¿cómo puedo hacer que este script se ejecute después de crear la instancia?

este es mi archivo docker-compose.yml

 mongodb: container_name: mongodb image: mongo command: /bin/bash "cd /docker-entrypoint-initdb.d && mongo-init.sh" networks: - backend-network volumes: - './db:/data/db' - './mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh' tty: true restart: always
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No necesita modificar el comando mongo porque causará problemas en el contenedor mongodb. Al definir command , anulará el CMD original que esperaba ejecutar. el script se ejecutará automáticamente siempre que lo haya montado en /docker-entrypoint-initdb.d/ como se explica aquí

Tenga en cuenta que los scripts se ejecutarán solo una vez al comienzo de su contenedor y para que se ejecuten nuevamente, debe eliminar el volumen /data/db que está asociado con su contenedor.

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!