[英]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.