Docker-组合重新启动策略

我查看了文档寻找 docker-compose,我看到版本3有一个部署重启策略,但它只适用于群。我尝试在我的服务上设置 start _ policy,但是得到了这个错误:

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.web: 'restart_policy'

是否有任何方法来设置一个重新启动策略的服务创建使用码头组合外的一个群?

155821 次浏览

Version 2 supports restart policies, using the restart keyword, and should work fine for you if you don't need Swarm (which you said you don't need/want).

version: '2'
services:
web:
image: apache
restart: always

https://docs.docker.com/compose/compose-file/compose-file-v2/#restart

Compose format version 3 has a parameter called restart_policy, but so far as I can tell from documentation it is only valid as part of deploy, which is only used when deploying to a Swarm. So version 3 is probably not useful in your case.

It looks like a gap in the documentation

In 3rd version, we can still use "restart" inside services same as before in v.2 (except for deploy into swarm)

version: '3'
services:
my-service:
restart: on-failure:5

https://docs.docker.com/compose/compose-file/compose-file-v3/#restart_policy

Even if you're NOT in swarm mode, there is an option called --compatibility which will work with restart_policy, this will attempt to restart even if you're not deploying. The only glitch, is the sub-keys of 'delay' and 'window' will be ignored. Here is an example:

version: '3.7'
services:
build:
context: .
dockerfile: Dockerfile
container_name: example
deploy:
restart_policy:
condition: on-failure
max-attempts: 3

run this command:

docker-compose -f docker-compose.yml --compatibility up