docker-compose的yml文件配置deploy参数失效use the ‘deploy‘ key, which will be ignored.
1.遇到问题配置deploy失效
报错:Some services (hsb_mq_bid) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.
version: '3.3'services:hsb_mq_bid:# 出价接口image: registry.cn-hangzhou.aliyuncs.com/spider_tie/hsb_cookies:20250417restart: alwaysvolumes:- ./logs:/logsdeploy:replicas: 4
在yml中配置replicas启动,然后打印日志查看发现,实例只启动了一个
[root@node1 hsb_yaml]# docker-compose logs -f
WARNING: Some services (hsb_mq_bid) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.
Attaching to hsbyaml_hsb_mq_bid_1
2.解决办法
查询资料得知,Swarm集群不支持在yml中配置replicas,具体操作如下
# 如果需要在 Swarm 集群中部署:
# 先初始化集群
docker swarm init
# 执行操作
docker stack deploy -c docker-compose.yml hsb_cookies
查看日志
# 查看日志
docker service logs -f hsb_cookies_hsb_mq_bid
[root@node1 hsb_yaml]# docker service logs -f hsb_cookies_hsb_mq_bid
hsb_cookies_hsb_mq_bid.3.w7e4bvjjad2l@node1 | 2025-05-12 14:15:57.362 | INFO | __main__:connect:54 - Connected to RabbitMQ
hsb_cookies_hsb_mq_bid.2.nibvs3p4zl3p@node1 | 2025-05-12 14:15:57.472 | INFO | __main__:connect:54 - Connected to RabbitMQ
hsb_cookies_hsb_mq_bid.4.5xkpd0bqd2t0@node1 | 2025-05-12 14:15:57.396 | INFO | __main__:connect:54 - Connected to RabbitMQ
hsb_cookies_hsb_mq_bid.1.la73plkat9nx@node1 | 2025-05-12 14:15:57.458 | INFO | __main__:connect:54 - Connected to RabbitMQ
可以看到实例化已经正常,启动个数和yml配置个数相同
如果你需要同时支持单机和 Swarm 模式,可以将 deploy 保留在文件中,但通过不同的命令区分:
单机:docker-compose up(忽略 deploy)
Swarm:docker stack deploy(使用 deploy)