本文介绍了Docker中的DB2产生DB21018E的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无法使用DB2构建Docker映像。
I can't build a Docker image with DB2.
Dockerfile:
Dockerfile:
FROM ibmcom/db2express-c
EXPOSE 50000
CMD ["db2start"]
SHELL ["/bin/bash", "-c"]
RUN su - db2inst1 -c "db2 create db DMX"
日志:
Building image...
Step 1/5 : FROM ibmcom/db2express-c
---> 7aa154d9b73c
Step 2/5 : EXPOSE 50000
---> Using cache
---> 3172f8b3790b
Step 3/5 : CMD ["db2start"]
---> Using cache
---> f38e27452920
Step 4/5 : SHELL ["/bin/bash", "-c"]
---> Using cache
---> 1cef61dbf3c5
Step 5/5 : RUN su - db2inst1 -c "db2 create db DMX"
---> Running in 59b7a5d1c0ba
DB21018E A system error occurred. The command line processor could not
continue processing.
Error: ResponseItem.ErrorDetail[code=8,message=The command '/bin/bash -c su
- db2inst1 -c "db2 create db DMX"' returned a non-zero code: 8]
但是如果我执行 su-db2inst1 -c db2手动创建db DMX
即可工作:
But if I execute su - db2inst1 -c "db2 create db DMX"
manually it works:
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.
任何提示这是什么问题吗?
Any hint what's the problem here?
推荐答案
问题确实是在bash环境中未正确设置的。我通过使用以下 RUN
命令解决了该问题:
The problem was indeed in bash environment not set up correctly. I resolved it by using the following RUN
command:
RUN su-db2inst1 -c / bin / bash&& db2start&& db2创建db DMX
,而不是原始的:
RUN su-db2inst1 -c db2 create db DMX
这篇关于Docker中的DB2产生DB21018E的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!