У нас есть монолитный процесс сборки для приложения на базе ROS , и мы хотим использовать Docker для его упаковки, чтобы нам было проще тестировать и развертывать.
В настоящее время я думаю, чточто я создаю образ, который содержит все зависимости, затем использую ENTRYPOINT
и подходящие --mount
команды, чтобы сделать наш окончательный cmake
и встроить локальный источник в контейнер.
Однако есть один важныйпроблема дизайна, которую я еще не нашел решение или лучшая практика для.Сначала я получил OpenCV + CUDA изображение и подходящее ROS-изображение , поэтому мне нужно объединить оба в новый контейнер, но команда FROM
, похоже, недостаточно.Например, OpenCV был установлен с make install
, а CUDA прошел через любую обработку apt-get
, поэтому я не могу просто COPY
над файлами --from
один после переключения на второй.Практически, когда я в настоящее время пытаюсь собрать cmake
, жалуется на отсутствие CUDA_TOOLKIT_ROOT_DIR
, и если я взломаю, что, несомненно, будет другая подобная ошибка, еще несколько строк в makefile
.
Как сделатьлюди обходят стороной «множественное наследование изображений» (из-за отсутствия лучшего слова)?Должен ли я, скажем, просто делать apt get cuda8
в моем последнем Dockerfile
вместо того, чтобы полагаться на FROM docker-opencv-cuda
для косвенного обеспечения среды?Тем не менее, проблема заключается в том, чтобы обеспечить синхронизацию версий CUDA между изображениями.