Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;“未找到Activemq”;运行自定义Docker映像后出错_Java_Docker_Dockerfile - Fatal编程技术网

Java &引用;“未找到Activemq”;运行自定义Docker映像后出错

Java &引用;“未找到Activemq”;运行自定义Docker映像后出错,java,docker,dockerfile,Java,Docker,Dockerfile,我们有一个遗留应用程序,我正在尝试将其dockerize。应用程序的jar将应用程序和activemq捆绑在一起。(我们不能改变它的建造方式)。并有一定的安装步骤。我为此创建了以下初始Dockerfile,但是在运行映像时,我面临一个问题(在Dockerfile之后提到) Dockerfile如下所示: FROM registry:4000/openjdk:8-jre-alpine RUN addgroup -S appuser && adduser -S -G appuser

我们有一个遗留应用程序,我正在尝试将其dockerize。应用程序的jar将应用程序和activemq捆绑在一起。(我们不能改变它的建造方式)。并有一定的安装步骤。我为此创建了以下初始Dockerfile,但是在运行映像时,我面临一个问题(在Dockerfile之后提到)

Dockerfile如下所示:

FROM registry:4000/openjdk:8-jre-alpine

RUN addgroup -S appuser && adduser -S -G appuser appuser

ADD ./fe.jar /home/appuser

RUN chmod +x /home/appuser/fe.jar \
&& chown appuser:appuser /home/appuser/fe.jar

USER appuser

RUN ["java", "-jar", "/home/appuser/fe.jar", "-i"]

WORKDIR /home/appuser/fe/activemq/bin

CMD ["/bin/sh", "-c", "activemq"]
RUN命令将该位置的应用程序和activemq提取到名为fe的文件夹中

WORKDIR似乎将工作直接设置为activemq/bin。我使用sh脚本确认了这一点,该脚本在运行映像时触发。在sh脚本中,我触发ls和pwd命令以查看内容和位置

但是,当我运行触发CMD命令的映像时,我得到一个错误:

/bin/sh: activemq: not found

这里可能存在什么问题?

如果
activemq
是您的
bin
目录(而不是路径)中的可执行文件,那么您需要编辑
CMD

CMD ["/bin/sh", "-c", "./activemq"]

还要确保脚本是可执行的。

发现问题。activemq脚本以#开头/bin/bash,我正在尝试使用sh运行它。我需要首先在映像中安装bash,然后使用一个来运行activemq脚本。 我从这个答案中得到了暗示:
现在它向前移动,但容器在立即运行后死亡。不知道问题是什么。甚至没有给出任何错误。

添加/更新了以下行,但这些行不起作用。:WORKDIR/home/appuser/fe/activemq/bin RUN chmod+x-R。CMD[“/bin/sh”、“-c”、“/activemq”]