Есть ли причина, по которой вы не можете использовать официальное изображение (docker pull linuxbrew/linuxbrew
)? Он основан на Ubuntu 16.04 / Xenial.
Если вам необходимо использовать Bionic (18.04), правильным способом установки homebrew будет следовать инструкциям официального Dockerfile .
Но чтобы ваш Dockerfile работал, вам нужно установить ruby, создать пользователя без полномочий root и выполнить сценарий установки от имени этого пользователя. Таким образом,
FROM ubuntu:18.04
RUN apt-get update && \
apt-get install build-essential curl file git ruby-full locales --no-install-recommends -y && \
rm -rf /var/lib/apt/lists/*
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
RUN useradd -m -s /bin/bash linuxbrew && \
echo 'linuxbrew ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers
USER linuxbrew
RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
USER root
ENV PATH="/home/linuxbrew/.linuxbrew/bin:${PATH}"
PS: я добавил --no-install-recommends
, чтобы игнорировать необязательные зависимости, и rm -rf /var/lib/apt/lists/*
, чтобы удалить apt-get
остатки, тем самым уменьшая размер изображения. Кроме того, locales
добавляется для установки UTF-8 или brew
выдаст предупреждение при запуске команды.