首页 > 解决方案 > Docker:设置超时并使用错误代码退出

问题描述

超时后如何使 Docker 容器退出并显示错误代码?

我有一个 Dockerfile,它使用ubuntu图像并将脚本文件从我的目录复制到图像,最后在容器中执行脚本。

FROM ubuntu
WORKDIR /usr/bin/
COPY ./example.py .
RUN chmod +x example.py
ENTRYPOINT ["python3", "example.py"]

然后我运行构建命令:

docker build -t demo .

运行容器:

docker run -it --rm demo

我不确定成功执行 example.py 脚本需要多长时间,但我想在 1 小时后退出容器。如果 example.py 脚本在 1 小时内成功执行,那么没关系,否则我想退出并显示错误代码。

标签: dockerdockerfilecontainers

解决方案


您可以timeout像这样使用命令:

ENTRYPOINT ["timeout", "3600", "python3", "example.py"]

如果python3 example.py花费超过 1 小时(3'600 秒),将返回错误(退出代码 124)。


推荐阅读