程序配置

config/autoload/server.php中配置settings启动参数,增加

1
Constant::OPTION_MAX_WAIT_TIME => 60,

确保程序收到类似kill -15 $(<runtime/hyperf.pid)这样的信号,可以在处理完当前请求后自己退出

设置swarm

yaml如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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:

更新

1
docker service update --force app_hyper