docker swarm hyperf websocket 实现热更新 平滑重启
程序配置
在config/autoload/server.php
中配置settings
启动参数,增加
Constant::OPTION_MAX_WAIT_TIME => 60,
确保程序收到类似kill -15 $(<runtime/hyperf.pid)
这样的信号,可以在处理完当前请求后自己退出
设置swarm
yaml如下
version: '3.8'
services:
hyperf:
image: hyperf/hyperf:8.1-alpine-v3.18-swoole
stop_grace_period: 1m # 重要:给予足够的宽限期以完成处理
deploy:
replicas: 1
update_config:
parallelism: 1
order: start-first # 重要:先启动新任务再停止旧任务
ports:
- "9502:9502"
- "9501:9501"
volumes:
- /www/hyperf-skeleton:/data/project # 挂载代码目录
networks:
- webnet
working_dir: /data/project # 设置容器内工作目录
command: php bin/hyperf.php start # 根据实际启动命令修改
networks:
webnet:
更新
docker service update --force app_hyper
最后更新于 2025-03-11 03:02:45 并被添加「」标签,已有 74 位童鞋阅读过。