避免覆盖ENTRYPOINT基本docker映像

时间:2018-12-10 10:20:56

标签: docker

我有一个指向daggerok/jboss-eap-7.1:7.1.0-alpine的基本docker映像,它执行了一个我不想覆盖的ENTRYPOINT。但是我也需要在基本映像执行完它们之后执行另一个命令,所以我的Dockerfile看起来像这样:

FROM daggerok/jboss-eap-7.1:7.1.0-alpine

#SOME CODE HERE

ENTRYPOINT ["mybash.sh"]

我认为这段代码会在基本图片中覆盖ENTRYPOINT,因此我需要避免使用它。我的脚本需要在基本映像中的所有命令之后执行。

有解决问题的秘诀吗?

1 个答案:

答案 0 :(得分:1)

要实现您想要的目标有一些问题:

  • 您无法在运行时在.sh脚本中找到基础图像的ENTRYPOINT,因此,如果不将其显式复制到mybash.sh
  • 中,就无法执行它。
  • 您提到的基础映像的ENTRYPOINT/bin/bash ${JBOSS_HOME}/bin/standalone.sh,它将启动docker容器ID为1的主进程。您不应该更改它,例如在后台启动它。进一步阅读here

我建议重写mybash.sh: 启动jboss之前,请先执行所需的任何操作。然后,以最后一行从jboss开始完成脚本: exec "/bin/bash ${JBOSS_HOME}/bin/standalone.sh"(改编自here