我查看了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创建的服务上设置重启策略?
答案 0 :(得分:71)
它看起来像文档中的空白
在第3版中,我们仍然可以使用" restart"内部服务与v.2之前的相同(除了部署到swarm中)
version: '3'
services:
my-service:
restart: on-failure:5
答案 1 :(得分:68)
版本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时使用。var sampleData = [23,45,14,47,24,57,24,35];
function _div(id){
return document.getElementById(id);
}
function drawBarChart(dataset, idOfContainer){
var chartContainer = _div(idOfContainer)
if(typeof(dataset) != "object"){
return;
}
var heightOfContainer = chartContainer.scrollWidth;
var widthOfContainer = chartContainer.scrollHeight;
var widthOfBar = parseInt(widthOfContainer / dataset.length) - 2;
for(var i = 0; i < dataset.length; i++){
var divElement = document.createElement("div");
divElement.setAttribute("class", "div2");
divElement.style.marginLeft = parseInt(i * 2 + i * widthOfBar) + "px";
divElement.style.height = parseInt(dataset[i]) + "px";
divElement.style.width = parseInt(widthOfBar) + "px";
divElement.style.top = (heightOfContainer - parseInt(dataset[i]) - 1) + "px";
chartContainer.appendChild(divElement);
}
return false;
}
drawBarChart(sampleData, "div1");
console.log();
。因此版本3在您的情况下可能没用。
答案 2 :(得分:3)
即使您不处于群体模式,也有一个名为 --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 --compatability up