发布时间:2020-05-07 20:55:43来源:阅读:
这是我们使用自建 docker swarm 集群后在部署时遇到的一个问题,使用 docker service update 命令更新服务时,
docker service update -d=false --force service_name
在更新的过程中服务有短暂的时间不能访问。
该服务中运行的是 asp.net core web api ,所使用的 Dockerfile 如下:
FROM microsoft/aspnetcore:1.1.2
ARG PROJECT
WORKDIR /app
COPY ${PROJECT}/publish .
RUN echo "dotnet ${PROJECT}.dll --urls http://*:80" > run.sh
通过在服务更新期间在另外一个容器中运行下面的 curl 命令捕捉这个问题:
while true;do curl -sSf -w '%{http_code}' cloud_api/alive;sleep 2;done
service update 期间不能访问所更新的服务时,curl 会出现下面的输出:
curl: (7) Failed to connect to cloud_api port 80: Connection refused
000
怀疑是容器启动后,asp.net core web api 站点没有立即开始工作,dotnet 命令启动站点也需要一定的时间。
针对这个怀疑点,在 Dockcefile 中添加 HEALTHCHECK 指令,这样可以让 docker 在容器启动后对容器内应用进行健康检查,检查通过才将容器投入使用。
HEALTHCHECK --interval=5s --timeout=20s
CMD curl -fs localhost/alive || exit 1
注:localhost/alive 是容器内应用实现的一个健康检查 url 。
添加 HEALTHCHECK 后重新构建镜像并部署,执行 service update 命令问题没有出现,搞定!
驱动更新软件(Driver Booster)下载 v6.5.0.421中文免费版
20.5M
C-Lodop云打印服务器(云打印工具)v4.115官方版
9.3M
Emby Server(流媒体服务软件,)v4.0.2.0 破解版
101M
tomcat7.0 (Web 应用服务器)官方版
9.3M
华为浏览器(网页浏览服务软件)v6.1.2.1500 最新版
85.7M
网络文件服务器下载
837.6KB
雨燕投屏(投屏办公服务软件) 3.10.16.0 最新版
3.5M
activesync(电脑数据同步工具)v6.1 中文版
22.72MB
ceb文件阅读器(阅览软件)V4.5.3 中文版
42.6M
gghost一键恢复(系统备份还原工具)v10.03.09 中文版
14.5M
picture manager(图像处理软件)2010 中文版
19.46 MB
vc2005(动态链接库)V0.3.2 中文版
6.63MB
winkawaks模拟器(街机游戏模拟器) V1.62 中文版
2M
HeidiSQL下载
10.1M
IObit Driver Booster Pro下载
24.9MB
Win Toolkit
9.9 MB
cdr x6下载
251.8M
cs1.6下载
141MB
fireworks下载
88.4M
ftp上传工具下载
22.3M
2020-03-17
湛庐阅读怎么样,湛庐阅读APP
IdeaPad Z470开机自检报错
Docker命令行参考(11) – docker load从tar归档文件或STDIN导入镜像
943GML系列芯片组笔记本在Vista系统下液晶屏显示瞬间“闪烁”现象描述
ThinkPad -- 键盘问题的一般解决方法
Adaptec 2410SA RAID卡用户手册
如何指定安装无线网卡
wordpress重定向循环的几种解决方法
预装Win10系统的ThinkPad E465无线信号弱