Docker CI: 解决 Tomcat 服务宕机方案 --restart always + 健康检测
一、概述
基于 Docker 集成 CI 环境。涉及技术:Linux(Ubuntu 14.04), Docker, Jenkins, Git/Gitlab, Web/Httpbin, Python/Pytest, UI/Selenium, Robotframework, Grid Server, Appium 等。
架构图如下:
二、Docker 平台(Centos7):基于 Dockerfile 构建 Tomcat 新镜像
问题:Tomcat 服务宕机
方案:保持服务器正常提供服务,需要两个条件都有满足。即,服务自动重启和数据不丢失。因为/etc/hosts文件在重启之后还原,所以使用 Shell 控制。因健康检测的不足:延时较长,无法实时监控。增加 docker run 参数,–restart always 和 --add-host,保证服务停止时自动重启。
# cd /vm/docker/tomcat
# docker build -t healthcheck/tomcat .
dockerfile
HEALTHCHECK:健康检测
--interval:检查间隔(default 30s)
--timeout:超时(default 30s)
--retries:次数(default 3)
FROM tomcat
MAINTAINER Allan <mahuaping@roadoor.com>
ENV DEBIAN_FRONTEND noninteractive
# 健康检测
HEALTHCHECK --interval=5s --timeout=3s CMD curl --fail http://localhost:8080/ || exit
EXPOSE 8080
三、查看并运行 Tomcat 镜像
- 确定 STATUS 是 healthy 状态。
- 启动时修改 /etc/hosts 文件,参数 --add-host;详情参考官方文档。
--name:容器名
-