首页 > 解决方案 > 运行短期脚本后持久化 Docker 容器

问题描述

我有两个在容器中运行的 Python 脚本。第一个脚本从磁盘加载一些数据,进行一些操作,然后将输出保存在容器中。第二个脚本做了类似的事情,再次将输出保存在容器上。但是,一旦这些脚本运行完毕,我的容器基本上就“完成”了,Kubernetes 基本上会永远重新部署相同的构建。我希望能够运行这些脚本一次,但能够随时访问这些结果,而无需连续构建容器。

这是我的 Dockerfile,一般来说:

FROM X
...
RUN python3 script1.py
RUN python3 script2.py

目前我正在尝试CMD sleep infinity稍后通过 shell 访问容器,但这不起作用。我也试过ENTRYPOINT ["sh"]了,没用。

所以一般来说,我现在使用的 Dockerfile 看起来像这样:

FROM X
...
RUN python3 script1.py
RUN python3 script2.py
CMD sleep infinity

标签: dockercontainersopenshift

解决方案


在 Kubernetes/OpenShift 中,您将使用 Job。但是要保存结果,您还需要声明一个持久卷并将其安装到作业的 Pod 中,为您提供保存结果的地方。您可以稍后创建一个临时 pod 以访问持久卷的结果。


推荐阅读