我查看了docker-compose的文档,我看到版本3有一个部署重启策略,但它只适用于swarm.我尝试在我的服务上设置restart_policy但出现此错误:
ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.web: 'restart_policy'
Run Code Online (Sandbox Code Playgroud)
有没有办法在使用群集外的docker-compose创建的服务上设置重启策略?
小智 84
它看起来像文档中的差距
在第3版中,我们仍然可以在v.2中使用与之前相同的"重启"服务(除了部署到swarm中)
version: '3'
services:
my-service:
restart: on-failure:5
Run Code Online (Sandbox Code Playgroud)
Dan*_*owe 75
版本2使用restart关键字支持重启策略,如果您不需要Swarm(您说您不需要/想要),它应该可以正常工作.
version: '2'
services:
web:
image: apache
restart: always
Run Code Online (Sandbox Code Playgroud)
https://docs.docker.com/compose/compose-file/compose-file-v2/
Compose格式版本3有一个名为的参数restart_policy,但据我从文档中可以看出它仅作为部分有效deploy,仅在部署到Swarm时使用.因此版本3在您的情况下可能没用.
小智 5
即使你不是在群模式,有一个叫做选项--compatibility这将与restart_policy,这将尝试重新启动,即使您没有部署。唯一的故障是“延迟”和“窗口”的子键将被忽略。这是一个例子:
version: '3.7'
services:
build:
context: .
dockerfile: Dockerfile
container_name: example
deploy:
restart_policy:
condition: on-failure
max-attempts: 3
Run Code Online (Sandbox Code Playgroud)
运行以下命令:
docker-compose -f docker-compose.yml --compatability up
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51003 次 |
| 最近记录: |