小编bug*_*ggy的帖子

如何在"docker run container"上自动启动两个JAR

一旦通过run命令调用docker容器,我希望自动执行两个单独的JAR文件,因此当我键入时,docker run mycontainer它们都被调用.到目前为止,我有一个看起来像这样的dockerfile:

# base image is java:8 (ubuntu)
FROM java:8

# add files to image 
ADD first.jar .
ADD second.jar .

# start on run
CMD ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "first.jar"]
CMD ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "second.jar"]
Run Code Online (Sandbox Code Playgroud)

但是,这只会启动second.jar.

现在,两个罐子都是循环中的服务器,所以我想一旦启动它就会阻塞终端.如果我运行容器run -it mycontainer bash并手动调用它们,第一个将执行其输出,我无法启动另一个.

有没有办法打开不同的终端并在它们之间切换,让每个JAR在自己的上下文中运行?最好已经在dockerfile中.

我对ubuntu几乎一无所知,但是我找到了xterm打开一个新终端的命令,但是在调用JAR之后这不起作用.我正在寻找的是dockerfile内部的指令,例如打开一个新终端,执行first.jar,alt-tab到旧终端并执行second.jar,或者至少实现相同.

谢谢!

shell ubuntu jar docker dockerfile

5
推荐指数
1
解决办法
4571
查看次数

标签 统计

docker ×1

dockerfile ×1

jar ×1

shell ×1

ubuntu ×1