docerswarm集群部署springboot项目
- 其他
- 2025-09-11 01:42:01

1.准备两台服务器,安装好docker、docker-compose 因为用到了docker仓库,安装harbor,可以从github下载离线安装包 2. 我这边用到了gitlab-ci,整体流程也都差不多 1)打包mvn clean install 2)打镜像 docker-compose -f docker-compose.yaml build 3) 登陆harbor docker login -u admin -p *** 192.168.178 // 版本号可通过${CI_COMMIT_SHA:0:8}设置为每次提交的hash值,我这边方便就写laster了 4) 打tag docker tag 192.168.1.78/test/test-server:laster 192.168.1.78/test/test-server:laster 5) 上传到harbor docker push 192.168.1.78/test/test-server:laster docker-compose.yaml例子
version: '3.7' services: test-server: build: context: ./server #context指明dockerfile路径 environment: - JAVA_OPS=${JVMOPS} - DB_OPS=${DBOPS} container_name: test-server #容器名 hostname: test-server image: ${IMAGE_TAG} #镜像名 healthcheck: #健康检查 test: ["CMD", "curl", "-f", "http://localhost:8080/actuator/health"] interval: 10s #间隔时间 timeout: 10s retries: 3 #重试次数 start_period: 60s #开始时间 deploy: mode: replicated #用户可以指定集群中容器的数量(默认),global:每个节点一个 replicas: 2 #replicated时指定共几个容器 # 更新配置 restart_policy: condition: on-failure #非0退出容器后才重启 max_attempts: 1 #重启1次 update_config: # 每次更新数量 parallelism: 1 # 每次更新时间(更新完这个,就更新第二个) delay: 60s order: start-first #首先启动新任务, 并且正在运行的任务暂时重叠 failure_action: continue networks: - default networks: default: driver: overlay ipam: config: - subnet: 10.0.2.0/24 #设置2网段,腾讯内网ip默认1网段,冲突了6)拉镜像 docker pull 192.168.1.78/test/test-server:laster 7) 运行 docker stack deploy -c docker-compose.yaml --with-registry-auth test
遇到的问题
docker容器为10.0.1.0/24网络段,和腾讯的内网ip冲突,所以在docker-compose.yaml中设置网络段为2网段更新时,流量还是会分发至重启的节点,就肯定是访问不到接口报错了,后来百度说用健康检查,所以在docker-compose.yaml中增加了 healthchek模块,start_period试自己项目启动时间设置上一点虽说加了健康检查 ,但是发现,启动的容器,刚开始时strarting ,看日志已经启动成功,但是过了一会就unhealth,就自动stop了,百度说是健康检查失败,但是docker logs看日志也没错,后来百度说看 docker inspect 容器名,有个state,Health的log,看到是找不到curl的命令,于是就在dockerfile中,增加了RUN apt update && apt install -y curlspringboot的健康检查,需依赖actuator组建,具体可以百度,本地运行时,可直接访问提示{“status”:“UP”}order: start-first 后面测试发现,通过健康检查后,旧的才会stop掉docerswarm集群部署springboot项目由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“docerswarm集群部署springboot项目”