如果在其中运行的服务返回的退出代码不同于restart: always
,是否可以在docker-compose中重启容器? docker-compose.yml选项autorestart=true
不会那样工作。有没有办法解决它或这是一个服务问题,我应该在容器内寻找答案?
我使用supervisord但是添加选项255
即使服务因退出代码RUNNING_PID
而崩溃也不起作用 - char *replace_str(char *str, char *orig, char *rep)
{
static char buffer[4096];
char *p;
if(!(p = strstr(str, orig)))
return str;
strncpy(buffer, str, p-str);
buffer[p-str] = '\0';
sprintf(buffer+(p-str), "%s%s", rep, p+strlen(orig));
return buffer;
}
文件(由系统创建)未被删除。
感谢您的回复。
答案 0 :(得分:7)
'restart:always'将重启容器,无论退出代码如何,因此即使容器内运行的进程的退出代码为'0'。我正在使用'restart:on-failure',它完全符合您的描述。它在进程的非零退出代码上重新启动容器。在进程退出并且未重新启动后,您可以使用'docker-compose ps'检查退出代码