Как запустить sudo su - в Dockerfile - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь RUN sudo su - внутри Dockerfile и получаю эту ошибку

/ bin / sh: 1: sudo: не найдено

Вот как выглядит мой Dockerfile:

FROM ubuntu:18.04
RUN sudo su - 
RUN apt update && install openjdk-8-jdk
RUN wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - && sudo sh -c  'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/kenkins.list'
RUN apt update && apt install jenkins

RUN curl -fsSL get.docker.com | /bin/bash
RUN usermod -aG docker jenkins && systemctl restart jenkins

Эта ошибка возникает, когда я пытаюсь ее построить. docker build -t jenkins . Может ли кто-нибудь мне помочь?

Ответы [ 3 ]

1 голос
/ 29 января 2020

Эта команда, похоже, ничего не делает, кроме создания дополнительного слоя без какого-либо полезного эффекта.

0 голосов
/ 02 февраля 2020

По умолчанию dockerfile будет работать как виртуальный пользователь "root", поэтому нет необходимости включать какую-либо команду sudo.

Поскольку пример сценария не содержит значений по умолчанию "-y", кажется, что Вы просто набрали описание для ручной установки в скрипт. Это никогда не сработает. И хорошо, в контейнере приложение также должно быть на PID-1, чего не сделает systemctl.

Пройдя базовое c руководство по docker, вы поймете, почему.

0 голосов
/ 30 января 2020
$ cat Dockerfile

FROM ubuntu:18.04
RUN apt-get update && apt-get install openjdk-8-jdk -y

Если вы хотите изменить привилегию использования, используйте USER флаг в Dockerfile

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...