2017-02-14 96 views
15

我查看了docker-compose的文档,发现版本3有一个部署重新启动策略,但它只适用于swarm。我想对我的服务设置restart_policy但得到这个错误:Docker-Compose重新启动策略

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

有什么办法来设置使用泊坞窗,组成一个群之外创建的服务重新启动的政策?

+2

你需要版本3撰写文件?转换到版本3的目的是为了swarm支持。 – BMitch

回答

29

版本2支持重新启动策略,使用restart关键字,如果你不需要Swarm(你说你不需要/不需要),它应该可以正常工作。

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

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

撰写格式版本3有一个名为restart_policy参数,但到目前为止,我可以从文档告诉它只是作为deploy一部分,其部署到群时才使用有效。所以版本3可能对你的情况没有用处。

+0

问题是关于版本3,请尝试更新答案? https://docs.docker.com/compose/compose-file/#/restartpolicy –

+0

我认为这个问题的错误是因为使用了非版本3撰写文件 –

+0

@ cricket_007来自docs的AFAICT,'restart_policy'只是有效的在'部署'里面,这只在使用Swarm时才被使用。由于OP问及不使用Swarm,我觉得我原来的答案应该保持原样。 –

25

它看起来像文档

在第3版本的缝隙,我们仍然可以使用“重启”内部服务和以前一样在第2节(除了部署到群)

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

这是一个正确的答案,因为问题是关于版本3. – StalkAlex

+0

我没有看到':5'作为API的记录部分。我错过了吗?你能澄清那个意图吗? – cdaringe

+0

看来他们[修复了这个空白](https://docs.docker.com/compose/compose-file/#restart)在文档中。 5:仍然没有记录,显然是“最大重试次数”。我这样使用:'restart:unless-stopped:5'并且得到_maximum重试计数不能用于重启策略'unless-stopped'_。我把0而不是5,它的工作 – riverhorse