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.

La imagen de docker de IBM DB2 falla en m1.

Estoy teniendo problemas para configurar DB2 en macOS a través de Docker en mi MacBook Pro M1-Max (32 GB RAM). Ya he revisado esta pregunta , que podría estar relacionada, sin embargo, no hay mucha información y no puedo decir exactamente si se trata de lo mismo.

Configuré el siguiente archivo docker-compose.yml:

version: '3.8'

services:
  db2:
    image: ibmcom/db2
    platform: linux/amd64
    container_name: db2-test
    privileged: true
    environment:
      LICENSE: "accept"
      DB2INSTANCE: "db2dude"
      DB2INST1_PASSWORD: "db2pw"
      DBNAME: "RC1DBA"
      BLU: "false"
      ENABLE_ORACLE_COMPATIBILITY: "false"
      UPDATEVAIL: "NO"
      TO_CREATE_SAMPLEDB: "false"
      REPODB: "false"
      IS_OSXFS: "true"
      PERSISTENT_HOME: "true"
      HADR_ENABLED: "false"
      ETCD_ENDPOINT: ""
      ETCD_USERNAME: ""
      ETCD_PASSWORD: ""
    volumes: 
       - ~/workspace/docker/db2-error/db2/database:/database
       - ~/workspace/docker/db2-error/db2/db2data:/db2data
    ports:
      - 50000:50000 

En mi MacBook con procesador Intel, esto se inicia sin problemas, pero en mi MacBook M1 veo después de que se completa la Tarea #4, veo la siguiente sección dentro de STDOUT:

DBI1446I The db2icrt command is running.

DBI1070I Program db2icrt completed successfully.

(*) Fixing /etc/services file for DB2 ... 
/bin/bash: db2stop: command not found 

Por lo que pude averiguar, la presencia de “(*) Fixing /etc/services file for DB2 …” ya parece ser incorrecta (ya que no aparece en mi registro de Intel y no suena como si todo estuviera bien) y el “/bin/bash: db2stop: command not found” aparece debido a la línea 81 de “/var/db2_setup/include/db2_common_functions”, que indica “su – ${DB2INSTANCE?} -c ‘db2stop force'”.

Por lo que entiendo, “su -” debería ejecutarse con la ruta del usuario destino. En cada “.profile” o “.bashrc” en el directorio de inicio, se está extrayendo “~/sqllib/db2profile” (a través de “. /database/config/db2dude/sqllib/db2profile”).

Sin embargo, como root dentro del contenedor ( “docker exec -it db2-test bash”), llamando a “su – db2dude -c ‘echo $ PATH'”, imprime “/usr/local/bin:/bin:/usr/bin”. Por lo tanto, la ruta no es la esperada.

Quizás alguien pueda averiguar qué está sucediendo en este punto. También intenté ejecutar Docker con “nuevo marco de virtualización”, lo que no cambió nada. Supongo que la magia de compatibilidad de Docker podría no ser perfecta, sin embargo, espero encontrar algún tipo de solución alternativa, tal vez construyendo una imagen sobre “ibmcom/db2”.

Aprecio mucho su tiempo y consejos. Desde ya, muchas gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece haber un problema para configurar DB2 en macOS a través de Docker en un MacBook Pro M1-Max. El problema parece estar relacionado con que la RUTA no está configurada correctamente, lo que provoca que el comando db2stop no se encuentre.

    Una posible solución alternativa podría ser crear una imagen a partir de ibmcom/db2 y modificar la RUTA dentro del contenedor para asegurarse de que incluye los directorios necesarios.

    Otra posible solución podría ser intentar ejecutar Docker con el “nuevo marco de virtualización” para ver si resuelve el problema.

    En general, esto parece ser un problema de compatibilidad con Docker en el MacBook Pro M1-Max. Puede ser útil contactar el soporte de Docker o el soporte de IBM para obtener ayuda adicional.

Comments are closed.