我查看了docker-compose的文档,我看到版本3有一个部署重启策略,但它仅适用于swarm。我尝试在我的服务上设置restart_policy,但收到此错误:
ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.web: 'restart_policy'
有没有办法在群之外使用 docker-compose 创建的服务上设置重启策略?
它看起来像文档中的空白
在 3rd 版本中,我们仍然可以在与之前在 v.2 中相同的服务中使用"重启"(部署到 swarm 中除外(
version: '3'
services:
my-service:
restart: on-failure:5
https://docs.docker.com/compose/compose-file/compose-file-v3/#restart_policy
2 使用 restart
关键字支持重启策略,如果您不需要 Swarm(您说您不需要/想要(,应该可以正常工作。
version: '2'
services:
web:
image: apache
restart: always
https://docs.docker.com/compose/compose-file/compose-file-v2/#restart
撰写格式版本 3 有一个名为 restart_policy
的参数,但据我从文档中可以看出,它仅作为 deploy
的一部分有效,仅在部署到 Swarm 时使用。因此,版本 3 在您的情况下可能没有用。
即使您不处于 swarm 模式,也有一个名为 --compatibility 的选项,它将与restart_policy一起使用,即使您没有部署,它也会尝试重新启动。唯一的故障是">延迟"和"窗口">的子键将被忽略。下面是一个示例:
version: '3.7'
services:
build:
context: .
dockerfile: Dockerfile
container_name: example
deploy:
restart_policy:
condition: on-failure
max-attempts: 3
运行以下命令:
docker-compose -f docker-compose.yml --compatibility up