Docker中的DB2产生DB21018E

Docker中的DB2产生DB21018E,docker,db2,dockerfile,db2-express-c,Docker,Db2,Dockerfile,Db2 Express C,我无法使用DB2构建Docker映像 Dockerfile: FROM ibmcom/db2express-c EXPOSE 50000 CMD ["db2start"] SHELL ["/bin/bash", "-c"] RUN su - db2inst1 -c "db2 create db DMX" 日志: 但是如果我手动执行su-db2inst1-c“db2createdbdmx”它会工作: MB-54:test mkadan$ docker exec -i -t db2 /bin/

我无法使用DB2构建Docker映像

Dockerfile:

FROM ibmcom/db2express-c

EXPOSE 50000
CMD ["db2start"]

SHELL ["/bin/bash", "-c"]
RUN su - db2inst1 -c "db2 create db DMX"
日志:

但是如果我手动执行
su-db2inst1-c“db2createdbdmx”
它会工作:

MB-54:test mkadan$ docker exec -i -t db2 /bin/bash
[root@5cb934e6d434 /]# su - db2inst1 -c "db2 create db DMX"
DB20000I  The CREATE DATABASE command completed successfully.

有什么提示吗?

问题确实出在bash环境中,没有正确设置。我使用以下
RUN
命令解决了这个问题:

运行su-db2inst1-c”/bin/bash&&db2start&&db2createdbdmx“

而不是原来的一个:


运行su-db2inst1-c“db2createdbdmx”

问题确实是在bash环境中没有正确设置。我使用以下
RUN
命令解决了这个问题:

运行su-db2inst1-c”/bin/bash&&db2start&&db2createdbdmx“

而不是原来的一个:


运行su-db2inst1-c“db2createdbdmx”

我猜您没有在docker shell中设置db2环境。您需要导入
/home/db2inst1/sqllib/db2profile
(根据安装路径,您的路径可能不同)。我不熟悉在Docker中如何实现这一点。比较两种情况下的db2diag条目(当它以交互方式工作时,与通过“su-db2inst1”运行时失败时)。如果有必要,首先(暂时)为实例设置DIAGLEVEL 4。您需要导入
/home/db2inst1/sqllib/db2profile
(根据安装路径,您的路径可能不同)。我不熟悉在Docker中如何实现这一点。比较两种情况下的db2diag条目(当它以交互方式工作时,与通过“su-db2inst1”运行时失败时)。如有必要,首先(暂时)为实例设置DIAGLEVEL 4。
MB-54:test mkadan$ docker exec -i -t db2 /bin/bash
[root@5cb934e6d434 /]# su - db2inst1 -c "db2 create db DMX"
DB20000I  The CREATE DATABASE command completed successfully.