Проверьте команду SHELL . По умолчанию оболочка на Linux - это ["/ bin / sh", "-c"]
RUN "source file" # translates to: RUN /bin/sh -c "source file"
Вы можете изменить оболочку по умолчанию, используя SHELL
, которая меняет оболочку, используемую для последующих команд RUN
в Dockerfile
SHELL ["/bin/bash", "-c"]
Теперь оболочка по умолчанию изменилась, и вам не нужно явно определять ее в каждой инструкции RUN
RUN "source file" # now translates to: RUN /bin/bash -c "source file"
. Дополнительная заметка: вы также можете добавить --login
который запускает оболочку входа. Это означает, что ~/.bachrc
, например, будет прочитан, и вам не нужно явно указывать его перед вашей командой