docker - 运行短期脚本后持久化 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
解决方案
在 Kubernetes/OpenShift 中,您将使用 Job。但是要保存结果,您还需要声明一个持久卷并将其安装到作业的 Pod 中,为您提供保存结果的地方。您可以稍后创建一个临时 pod 以访问持久卷的结果。
推荐阅读
- shell - 通过 PM2 将环境变量传递给 NextJS
- java - 在 JHipster 微服务应用程序中构建 UI 更改
- php - 从json响应中获取特定值不起作用
- react-native - 更新类型阴影节点中的属性“fontSize”时出错:RCTText
- typescript - 扩展不止一个类
- r - 将当前为文本文件的单个单元格计数矩阵转换为数据框
- sql - 重命名多个表前缀的 SQL 查询不起作用
- java - 为什么 AUTO_RESIZE_LAST_COLUMN 的行为类似于 AUTO_RESIZE_ALL_COLUMNS?
- javascript - javascript 服务器页面中是否有连接对象?
- oracle - 我需要以下输入数据的 Sql 查询