Docker-compose 重新启动策略



我查看了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

最新更新