es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Punto de entrada de Docker MinIO

Tengo este proyecto que inicialmente se configuró en Mac, estoy en Windows, es un proyecto de Docker que ejecuta Node, Kafka y algunos otros contenedores, uno de ellos es MinIO. Todo funciona según lo previsto, excepto MinIO, obtengo el siguiente error:

createbuckets_1  | /bin/sh: nc: command not found

Código de Docker-compose:

  createbuckets:
    image: minio/mc
    networks:
      - localnet
    depends_on:
      - minio
    entrypoint: >
      /bin/sh -c "
      while ! nc -zv minio 9000; do echo 'Esperando a que minio se inicie...' && sleep 0.1; done; sleep 5;
      /usr/bin/mc config host add myminio http://minio:9000 X X;
      /usr/bin/mc rm -r --force myminio/cronify/details;
      /usr/bin/mc mb myminio/cronify/details;
      /usr/bin/mc policy set download myminio/cronify/details;
      exit 0;"

Donde X debe ser reemplazado por las credenciales.
He estado tratando de encontrar una solución durante semanas.

También he intentado cambiar el entrypoint de /bin/sh -c a /bin/bash -c o #!/bin/bash -c o #!/bin/sh -c, obtengo el mismo error excepto "/.../bin/bash: nc: command not found".

El Dockerfile contiene:

FROM confluentinc/cp-kafka-connect
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para el Error de MinIO en un Proyecto Docker

    Problema

    El usuario está enfrentando un problema con el contenedor de MinIO en un proyecto Docker que se ejecuta en Node, Kafka y otros contenedores. El proyecto inicialmente se configuró en un Mac y ahora el usuario lo está ejecutando en Windows. Todo funciona correctamente, excepto el contenedor de MinIO, que genera un error indicando que el comando ‘nc’ no se encuentra.

    Causa

    El error se produce debido a la falta del comando ‘nc’ en el contenedor de MinIO.

    Solución

    Para solucionar este problema, el usuario debe modificar el archivo Dockerfile para instalar el paquete ‘netcat’ o ‘nc’ en el contenedor de MinIO. Esto se puede lograr siguiendo los siguientes pasos:

    1. Crear un nuevo archivo Dockerfile en el mismo directorio que el archivo docker-compose.yml.
    2. Agregar las siguientes líneas al Dockerfile:
    FROM minio/mc
    
    RUN apk add --no-cache netcat-openbsd
    
    1. Modificar el archivo docker-compose.yml para usar el Dockerfile recién creado:
    createbuckets:
      build: .
      container_name: create-buckets
      networks:
        - localnet
      depends_on:
        - minio
      entrypoint: >
        /bin/sh -c "\
        while ! nc -zv minio 9000; do echo 'Esperando a que minio se inicie...' && sleep 0.1; done; sleep 5;\
        /usr/bin/mc config host add myminio http://minio:9000 X X;\
        /usr/bin/mc rm -r --force myminio/cronify/details;\
        /usr/bin/mc mb myminio/cronify/details;\
        /usr/bin/mc policy set download myminio/cronify/details;\
        exit 0;"
    
    1. Guardar y cerrar los archivos.
    2. Ejecutar el siguiente comando para reconstruir el contenedor de MinIO con los cambios:
    $ docker-compose build createbuckets
    
    1. Ejecutar el siguiente comando para iniciar el proyecto Docker:
    $ docker-compose up
    

    El contenedor de MinIO ahora debería funcionar sin problemas. El archivo docker-compose debería ser capaz de crear los buckets necesarios en él.

    Siguiendo estos pasos, el usuario debería poder solucionar el problema del comando ‘nc’ no encontrado en el contenedor de MinIO.

Comments are closed.