Я пытаюсь отделить приложение от изображения app
и изображения database
, используя 2 Dockerfiles
. Оба используют FROM debian:jessie
в качестве базового изображения. Проблема, с которой я сталкиваюсь, заключается в том, что определенные пакеты в изображении app
должны знать местоположение базы данных при сборке. Есть ли способ связать команду сборки с существующим изображением или контейнером?Docker ссылка на существующий контейнер или изображение при сборке
Особенность
Мои database
изображения является HDF5 хранилищу, который я успешно построен.
My 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
, который работал благодаря – jdesilvio