Serverless应用引擎有一个以war包形式发布的应用。第一次发布总是失败,但是重启一下就正常了。 所以我设置了liveness检查,希望容器能在检测不到相应端口时,自己重启。 但是我这里等了很久也没有重启。 能否指导一下?现在只能手动重启一下就正常。是每次部署,第一次都不成功,但是手动重启一下,就可以了。 我想系统每次部署后自动重启一次容器
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,Serverless应用引擎(SAE)中以WAR包形式发布的应用在首次部署时总是失败,但手动重启后可以正常运行。您希望通过配置Liveness健康检查来实现容器在检测到端口不可用时自动重启,但目前未生效。以下是针对该问题的详细分析和解决方案:
为了实现每次部署后自动重启一次容器,并解决首次部署失败的问题,您可以按照以下步骤操作:
java -jar /home/admin/app.war
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 15
periodSeconds: 5
successThreshold: 1
failureThreshold: 1
由于SAE暂不支持定时重启功能,您可以通过以下方式实现类似效果: - 使用批量起停功能: - 在每次部署完成后,通过SAE控制台的“批量重启实例”功能手动触发重启。 - 操作步骤: 1. 登录SAE控制台。 2. 选择目标应用,进入“实例部署信息”页面。 3. 勾选需要重启的实例,点击“批量重启实例”按钮。 4. 等待重启完成,确认实例状态为“Running”。
aliyun sae RestartApplication --AppId <your-app-id>
通过以上步骤,您可以有效解决首次部署失败的问题,并实现每次部署后自动重启容器的需求。如果问题仍未解决,建议联系阿里云技术支持团队获取进一步帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。