Docker链接到构建时的现有容器或图像

时间:2016-01-31 16:14:01

标签: python docker pip hdf5

我正在尝试使用2 app将应用分为database图像和Dockerfiles图像。两者都使用FROM debian:jessie作为基本图像。我遇到的问题是app映像中的某些包需要知道构建时的数据库位置。有没有办法将构建命令链接到现有的图像或容器?

具体细节信息

我的database图片是我成功构建的HDF5数据存储区。

我的app图片是Python 3.5图片,用于安装使用HDF5的软件包。我在构建时遇到的错误是:

Step 15 : RUN pip install tables
 ---> Running in 9ea6d6b53a19
Collecting tables
  Downloading tables-3.2.2.tar.gz (7.0MB)
    Complete output from command python setup.py egg_info:
    /usr/bin/ld: cannot find -lhdf5
    collect2: error: ld returned 1 exit status
    * Using Python 3.5.1 (default, Jan 13 2016, 18:51:24)
    * USE_PKGCONFIG: True
    .. ERROR:: Could not find a local HDF5 installation.
       You may need to explicitly state where your local HDF5 headers and
       library can be found by setting the ``HDF5_DIR`` environment
       variable or by using the ``--hdf5`` command-line option.

我认为我需要在HDF5_DIR app中使用类似Dockerfile的内容创建一个ENV HDF5_DIR path/to/hdf5/container/urs/bin/ld环境变量,但我不确定这是否正确或如何获取正在运行的database容器的路径。或者,如果将其链接到database容器不正确,我需要将其链接到实际图像(如果可能的话)。

我知道HDF5不是一个常用工具,但希望这更像是通用解决方案的一般问题。如果您需要查看完整的Dockerfile s

,请与我们联系

1 个答案:

答案 0 :(得分:1)

您需要将libhdf5-dev添加到docker镜像中。我创建了一个可以扩展的Dockerfile:

FROM python:3.5

RUN apt-get update
RUN apt-get -y install libhdf5-dev
RUN pip install tables