Обновление Docker Ubuntu -альтернативы

#ubuntu #docker #dockerfile

#ubuntu #docker #dockerfile

Вопрос:

Недавно я столкнулся с проблемой, когда компилятор по умолчанию, установленный update-alternatives , не наследуется.

В базовом образе я делаю что-то вроде этого:

 FROM ubuntu:16.04
RUN apt update
RUN apt install -y gcc-4.9 g  -4.9 cmake make gfortran-4.9 make git wget
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 10
RUN update-alternatives --install /usr/bin/g   g   /usr/bin/g  -4.9 10
RUN update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-4.9 10
  

Затем в последующем изображении (используется с a FROM base-image ), когда я использую компилятор, я получаю другую версию по умолчанию (в данном случае 5.4).

Ожидается ли, что это произойдет?

У меня есть обходной путь, при котором я просто повторяю update-alternatives шаги в верхней части каждого файла Dockerfile, но я не уверен, что это лучший способ сделать это.

Комментарии:

1. вы хотите связать все свои RUN s, поэтому это должно быть что-то вроде: RUN apt update amp;amp; apt install -y gcc-4.9 g -4.9 cmake make gfortran-4.9 make git wget amp;amp; update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 10 amp;amp; update-alternatives --install /usr/bin/g g /usr/bin/g -4.9 10 amp;amp; update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-4.9 10

2. Попробуйте выполнить символическую ссылку с CMD помощью command вместо RUN command.