【问题标题】:Getting Openshift 3 container to install numpy and scipy让 Openshift 3 容器安装 numpy 和 scipy
【发布时间】:2017-10-09 19:55:30
【问题描述】:

我在 Openshift 3 Starter 中有一个用于部署的工作 Pod。这是基于来自 Docker 镜像的镜像流。但是,我无法使用内置的 S2I 在 Openshift 中构建它。

Docker 选项不好,因为我在任何地方都找不到设置来进行图像流更新并导致重新部署。

我尝试设置它以便 webhook 触发 Openshift 构建,但服务器需要带有 numpy 和 scipy 的 python 3,这使得构建卡住了。我能做的最好的就是粗鲁地基于requirements.txt 安装一个Python 3 墨盒安装numpy,其余的通过setup.py 安装,但这仍然卡住了。我有一个工作 webhook,用于运行在基本相同的布局栏上的不同应用程序(Python3 Pyramid with waitress)。

更新我已经制作了一个Openshift pyramid starter 模板。

【问题讨论】:

    标签: docker continuous-integration openshift


    【解决方案1】:

    我首先建议重新使用内置的 Python S2I 构建器。如果您正在使用 numpy/pandas 做任何事情,您将需要在应用程序的构建阶段增加可用内存量,因为编译器在构建这些包时会耗尽内存。见:

    看看这是否有帮助,如果需要,可以看看您使用外部构建的容器映像的其他选项。

    【讨论】:

    • 啊。出于记忆的原因,我在使用 v2 的 Pandas 上苦苦挣扎。我可以将资源限制从 512 MB(默认)增加到 1 GB。我不能超过 1 GB,因为我是一名学术用户,而且他们还没有发布任何赠款。我会试试的。谢谢
    • 我没有看到任何人在应用程序运行时需要更多内存的问题,这只是应用程序的构建。这些包在启用优化的情况下编译,这是非常占用内存的。因此,请确保您在构建配置中更改内存,而不是部署配置。
    • 当我使用您当前的 repo 时,它会失败,但如果我将内存增加到 1GB 以进行上述构建,它会超出此范围。然后它会因为您尝试在setup.pyrequirements 中做的事情而失败。 centos/python-36-centos7 图像可能会工作,因为它是较新的,并且包含一个更改,这意味着如果您在目录中同时拥有 requirements.txtsetup.pysetup.py 文件将被忽略。
    • 使用构建器的最新工作方式,如果您确实需要处理setup.py,则需要将. 添加到requirements.txt 文件中。更改是为了避免人们同时拥有并且不希望处理 setup.py 的问题,现在必须明确表示如果还有 requirements.txt 文件则希望使用它。看起来在线没有更新版本的基于 RHEL 的 S2I 构建器进行更改,公共 CentOS 有。
    • 另外忘了提我还设置了构建时间环境变量UPGRADE_PIP_TO_LATEST=true。这将更新到最新的pip,并提供了更好的机会使用二进制轮子包。较旧的pip 可能没有使用二进制轮子。
    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 2012-12-25
    • 2012-06-22
    • 2016-01-05
    • 2014-10-24
    • 1970-01-01
    • 2016-05-05
    • 2014-12-12
    相关资源
    最近更新 更多