Don't run this схвати Роот! - Docker Image

гm running Ubuntu xenia in my docker контейнер (this is в контейнер running in my ВЫ X VM Host). When you run the docker run command that created my контейнер, it logs you in эксперт root.

So when I try to install Linuxbrew after all this and after installing curl and ruby in my контейнер путь app-gret, I get the ошибка don't run this as root! when I try to then install Linuxbrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"

I want to be able to sill run this somehow. If docker run logs я in эксперт root, what I хан пахал my options here to get around this limitation on root so still run this command? If docker always logs я in эксперт root to в контейнер, what do people usually do in the situations where they want to install stuff like this схвати в нечетное число - root user on в контейнер with Ubuntu?

Заметьте: гm new to both Ubuntu, Linux, and docker. So that implies I май not be aware of all basics and there is в lot to know.

2
задан 3 January 2016 в 03:10

4 ответа

Поиск Google приводит меня к это . Я лично не думаю, что это - хорошее и чистое решение, но это должно быть в состоянии сделать задание. То, что делает это решение, следующее:

Вместо того, чтобы непосредственно запустить программу в контейнере, существует двухступенчатое продолжение запуска: Во-первых, маленький сценарий запускается с докером, который в основном создает нового пользователя в контейнере и затем выполняет основную программу как этого нового пользователя. Это - сценарий, который используется там, /home/r/script.sh являющийся программой, которая должна быть запущена:

#!/bin/bash
adduser --disabled-password --gecos '' r
adduser r sudo
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
su -m r -c /home/r/script.sh

, Если Вы хотите оболочку как тот пользователь, Вы могли бы быть в состоянии поместить удар там вместо этого.

2
ответ дан 2 December 2019 в 01:28

Можно использовать USER , команда для изменения пользовательских команд выполняется как. Конечно, необходимо создать пользователя сначала, таким образом, Dockerfile содержал бы что-то вроде этого:

RUN useradd --system -s /sbin/nologin someuser

USER someuser
7
ответ дан 2 December 2019 в 01:28

Можно использовать:

useradd -m linuxbrew
sudo -u linuxbrew -i /bin/bash
PATH=~/.linuxbrew/bin:/usr/sbin:/usr/bin:/sbin:/bin  
yes | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"

Здесь ссылка на исходную документацию от Linuxbrew

1
ответ дан 2 December 2019 в 01:28

Так как можно "выйти из системы" корня командной строки, выполнить первую команду, которая зарегистрировала Вас в как корень, введите выход, (регистрирует Вас), и затем выполните команду, которая говорит Вам "Не делать выполненный это как корень!".

0
ответ дан 2 December 2019 в 01:28

Другие вопросы по тегам:

Похожие вопросы: