在docker run命令上启动java进程

时间:2018-02-22 17:25:03

标签: linux docker selenium-grid

我有一个包含自定义文件和二进制文件的docker镜像。我希望能够使用此映像运行docker容器,并在启动容器时启动2个java进程。

目前我手动完成:

docker run -i -t -p 4444:4444 6b23ccf3402c

然后,在我进入容器后,我正在启动我的java进程:

java -jar /app/grid/hint-selenium-server-standalone-1.0.6-jar-with-dependencies.jar -role hub -hubConfig /app/grid/hubConfig.json -log /app/grid/logs/hub.log &

java -Dwebdriver.chrome.driver=/app/node/drivers/chromedriver -Dwebdriver.gecko.driver=/app/node/drivers/geckodriver -Dphantomjs.binary.path=/app/node/drivers/phantomjs -jar /app/node/hint-selenium-server-standalone-1.0.6-jar-with-dependencies.jar -role node -hub http://172.17.0.2:4444/grid/register/ -nodeConfig /app/node/nodeConfig.json -log /app/node/logs/node.log &

我的问题是,如何在一个“docker run”命令中执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以通过以下方式实现此目的:

docker run -i -t -p 4444:4444 6b23ccf3402c bash -c "java -jar [...] & java -jar [...] & bash"

但您也可以使用Dockerfile中的CMD statement

CMD java -jar [...] & java -jar [...] & bash

而不是运行docker run -it 6b23ccf3402c