У вас есть несколько доступных стратегий:
Объединение Dockerfile
s
Если у вас есть доступ к обоим Dockerfile
с, попробуйте объединитьсодержание в нем в один Dockerfile
.Вам придется выбрать одну FROM
инструкцию, но другие инструкции можно комбинировать по вашему выбору.
Замените FROM
на одну
Если у вас есть доступ к только один Dockerfile
, затем попробуйте изменить его инструкцию FROM
для наследования от другого изображения.Например, изображение ros:kinetic-ros-core-xenial
наследуется от ubuntu:xenial
;попробуйте изменить его для наследования, скажем, от reaverproject/llvm
.
ADD
обоих тарболов
Если у вас есть доступ к ни Dockerfile
, то выпридется немного перепроектировать.Начните с создания контейнера «noop» для каждого изображения и export
создания из него архива файловой системы.То есть, делайте ...
$ docker container run --name noop-foobar foobar sh -c 'exit 0'
$ docker container export --output foobar.tar noop-foobar
$ docker container rm noop-foobar
... заменяя "foobar" по необходимости.
После того, как вы экспортировали оба архива файловой системы, создайте "базовый образ" с помощью ADD
ingих в scratch
изображение:
FROM scratch
ADD llvm.tar
ADD ros.tar
...
Весьма вероятно, что вам придется вручную разрешать конфликты между архивами файловой системы, чтобы базовое изображение работало должным образом.
Ссылки: