Docker-撰写重新启动策略

nnsrf1az  于 2022-11-02  发布在  Docker
关注(0)|答案(3)|浏览(202)

我浏览了文档的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创建的服务上设置重启策略?

jmp7cifd

jmp7cifd1#

它看起来像是文档中的一个缺口
在第3版中,我们仍然可以在服务内部使用与之前v.2中相同的“重启”(除了部署到群中)

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

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

tnkciper

tnkciper2#

版本2支持重启策略,使用restart关键字,如果你不需要Swarm(你说你不需要/想要),应该可以很好地为你工作。

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

https://docs.docker.com/compose/compose-file/compose-file-v2/#restart
Compose format版本3有一个名为restart_policy的参数,但据我从文档中了解,它仅作为deploy的一部分有效,而deploy仅在部署到Swarm时使用。因此,版本3可能对您的情况没有用处。

yi0zb3m4

yi0zb3m43#

即使您处于群模式,也有一个名为**--compatibility的选项,它将与restart_policy**一起工作,即使您没有部署,它也会尝试重新启动。唯一的问题是,'delay''window' 的子键将被忽略。下面是一个示例:

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

相关问题