编辑:
在Github
上正在讨论一个相关的问题,但是在另一种部署模式下(Typesafe
Activator UI,而不是Docker)。
我试图模拟系统重启,以验证Docker重启策略,该策略声明能够按照正确的顺序重新运行容器。
我有一个用Java编写的Play框架应用程序。
Dockerfile看起来像这样:
FROM ubuntu:14.04
#
# [Java8, ...]
#
RUN chmod +x /opt/bin/playapp
CMD ["/bin/bash"]
我使用开始$ docker run --restart=always -d --name playappcontainer "./opt/bin/playapp"
。
当我$ service docker stop && service docker restart
然后$ docker attach playappcontainer
控制台告诉我:
Play server process ID is 7
This application is already running (Or delete /opt/RUNNING_PID file)
编辑:
当我按照Play文档的建议使用更改文件位置到/var/run/play.pid时,结果相同-Dpidfile.path=/var/run/play.pid
。
Play server process ID is 7
This application is already running (Or delete /var/run/play.pid file).
当我$ docker inspect playappcontainer
,它告诉我:
"State": {
"ExitCode": 255,
"FinishedAt": "2015-02-05T17:52:39.150013995Z",
"Paused": false,
"Pid": 0,
"Restarting": true,
"Running": true,
"StartedAt": "2015-02-05T17:52:38.479446993Z"
},
虽然:
容器内的主进程将收到SIGTERM,并在宽限期之后收到SIGKILL。
从$ docker
stop上的Docker参考
要终止正在运行的Play服务器,只需将SIGTERM发送到进程即可正确关闭应用程序。
从Play框架文档中停止Play应用程序
我根据答案和有关此问题的进一步工作,梳理出了一种解决方法。如果我按以下方式启动容器,则在(意外)停止/重新启动后它们将启动。冲突的RUNNING_PID文件不会阻止容器重新启动。
$ sudo docker run --restart=on-failure:5 -d \
--name container my_/container:latest \
sh -c "rm -f /var/run/play.pid && ./opt/bin/start \
-Dpidfile.path=/var/run/play.pid"
它的作用是删除包含进程ID的文件,该文件在运行二进制文件之前每次都使用选项放置在特定位置。
我在intellij上启动spring boot应用程序时遇到问题,它失败了,并显示以下消息:与目标VM断开连接,地址:'127.0.0.1:49784',传输:'socket' 过程结束,退出代码为255。以前有人遇到过这种情况吗?
我有一个应用程序只是作为“内部测试”在谷歌Play商店发布的 > 当我点击“内部测试”链接(Google Play控制台告诉内部测试人员的链接)时,它会打开Google Play并显示我的应用商店页面。商店页面显示了正确的最新版本,但我无法安装它。我唯一的选择是“卸载”和“打开”(这将打开当前安装的旧版本的应用程序) 我有"启用自动更新"启用从谷歌播放商店页面 我等了两天 我已确保手机上的应用程序
我正在docker容器中运行一个简单的spring boot应用程序。在启动时,是否从或应用程序将始终在以下时间点挂起: 这里有一个问题,我只能在数字海洋(1CPU,1GB MEM)的Ubuntu 14.04盒子上重现这个,即使它在容器中运行。在我的本地机器上,一切都运行良好。 Dockerfile文件: 我尝试过的事情 给JVM更多内存(占机器总数的75%) 按这里建议的方式停止库 我能接触到的
我有一个使用Spring Boot Actuator的Java后端,但它不会在DigitalOcean Ubuntu VPS上启动。同样的应用程序在我的苹果电脑和其他Ubuntu电脑上运行良好。 它开始初始化,但每次都在同一点停止(没有例外,只是挂起)。如果我尝试在此时用停止它,它将无法恢复shell。 这是Outoput: 这是之后的输出: 有人面临过同样的问题吗?你们能帮帮我吗? 这里你有线程
我正在测试新的Android版谷歌地图API V2,当应用程序启动时,我收到了以下信息: 这是在4.1模拟器上运行的。 这是我的文件: 文件main活动。爪哇: 文件activity_main.xml 单击"Update"会使应用程序崩溃,并显示以下stackTrace: 我还提到了Google Play服务项目。我做错了什么? 更新 Google issue tracker中相应的bug(htt
我有一份spark流媒体工作,我正试图由spark-k8运营商提交。我始终保持重启策略。但是,手动删除驱动程序时,驱动程序不会重新启动。我的yaml: Spark版本:2.4.5 apiVersion:“sparkoperator.k8s.io/v1beta2” 我遵循的步骤: 通过kubectl apply-f示例/spark测试创建资源。亚马尔。Pod创建成功。手动删除驱动程序。 预期行为:将