#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.