推送给迭戈:无法写入:设备上没有 space

Pushing to Diego: Cannot write: No space left on device

我们的应用程序是 运行DEA 上为数不多的应用程序之一。在 DEA 上,我们能够使用特定的自定义 buildbpack:

https://github.com/ihuston/python-conda-buildpack

既然我们必须继续 Diego 运行 时间,我们在推送应用程序时 运行 离开 space。我相信磁盘 space 仅在暂存期间才需要,因为相当多的库随 buildpack 一起提供并且必须构建(我们需要整个科学 python 堆栈,这些都包含在上面buildpack).

构建脚本输出一切正常,除了应用程序无法启动。然后日志显示:

2016-10-13T19:10:42.29+0200 [CELL/0]     ERR Copying into the container failed: stream-in: nstar: error streaming in: exit status 2. Output: tar: ./app/.conda/pkgs/cache/db552c1e.json: Wrote only 8704 of 10240 bytes

以及更多文件:

2016-10-13T19:10:42.29+0200 [CELL/0]     ERR tar: ./app/.conda/pkgs/cache/9779607c273dc0786bd972b4cb308b58.png: Cannot write: No space left on device

然后

2016-10-13T20:16:48.30+0200 [API/0]      OUT App instance exited with guid b2f4a1be-aeda-44fa-87bc-9871f432062d payload: {"instance"=>"", "index"=>0, "reason"=>"CRASHED", "exit_description"=>"Copying into the container failed", "crash_count"=>14, "crash_timestamp"=>1476382608296511944, "version"=>"ca10412e-717a-413b-875a-535f8c3f7be4"}

尝试添加更多磁盘配额(1G 以上)时出现错误:

Server error, status code: 400, error code: 100001, message: The app is invalid: disk_quota too much disk requested (must be less than 1024)

有没有办法多给一点space?至少对于构建过程?

您可以像使用 .gitignore 文件一样使用 .cfignore 文件来排除任何不需要的文件 cf pushed。也许如果你真的只推送必要的东西,磁盘 space 就足够了。

https://docs.developer.swisscom.com/devguide/deploy-apps/prepare-to-deploy.html#exclude

来自 https://github.com/ihuston/python-conda-buildpack 的 conda 安装程序默认使用 Intel MKL 库安装。现在这通常是一件好事,但似乎使用了太多space,因此无法部署。

我修改了构建包并添加到行

        $CONDA_BIN/conda install --yes --quiet --file "$BUILD_DIR/conda_requirements.txt"

旗帜nomkl

        $CONDA_BIN/conda install nomkl --yes --quiet --file "$BUILD_DIR/conda_requirements.txt"

如 continuums 博客 post 中所述:

https://www.continuum.io/blog/developer-blog/anaconda-25-release-now-mkl-optimizations

这将改为使用 OpenBLAS 并产生更小的 droplet(175M 而不是 330MB)并且部署可以成功完成。