[英]Restart a process inside a Docker container whenever the config file changes
[英]Docker: how to restart process inside of container?
我有一组测试,我想在docker容器上运行。 在测试过程中,我正在更改测试数据,我需要重新启动JETTY。
最好的方法是什么?
我可以想象一些选择:
使用SSH - 但对于docker ssh不是最好的选择。
Docker上的Python代理监听套接字 - 再暴露一个端口,连接并重启jetty。
也许有更好的想法?
谢谢
听起来你正在尝试重启的进程是docker容器的主要进程(即你在Dockerfile中设置的进程,如果你有一个,当你在容器内运行'ps -ef'时你会看到PID为您的过程设置为1)。 如果是这种情况,则无法从容器内重新启动它。 您应该只重新启动容器本身:
docker restart <container_id>
输入容器并重新启动它。
手动方式:
docker exec -it <containeridorname> /bin/bash
或自动化方式:
docker exec -it <containeridorname> /restartjettycommand.sh
您需要使用entrypoint shell script
来构建docker文件,以便将文件复制到容器中。
你的entrypoint.sh
或称之为runjettytests.sh
伪代码看起来像:
#!/bin/sh
java -jar start.jar
$runTests
java -DSTOP.PORT=8080 -DSTOP.KEY=stop_jetty -jar start.jar --stop
cp dataset2 data/
java -jar start.jar
$runTests2
java -DSTOP.PORT=8080 -DSTOP.KEY=stop_jetty -jar start.jar --stop
exit(0)
显然你的用例可能会有所不同,但这是一个粗略的想法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.