2017-02-14 105 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