Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在Dockerfile中运行sudo su_Linux_Ubuntu_Dock - Fatal编程技术网

Linux 如何在Dockerfile中运行sudo su

Linux 如何在Dockerfile中运行sudo su,linux,ubuntu,dock,Linux,Ubuntu,Dock,我试图在Dockerfile中运行sudo su-,我收到了这个错误 /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 - && s

我试图
在Dockerfile中运行
sudo su-
,我收到了这个错误

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

有人能帮我吗?

这个命令除了创建一个没有任何有用效果的额外层之外,似乎什么都没有做

$ cat Dockerfile

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

如果要更改Dockerfile中的使用权限useUSER标志,默认情况下Dockerfile将作为虚拟“root”用户运行,因此无需包含任何sudo命令

由于示例脚本不包含“-y”默认值,因此您似乎只是在脚本中键入了手动安装的说明。这是行不通的。而且,在容器中,应用程序也需要在PID-1上,这是systemctl无法做到的


在阅读了docker的基础教程后,您将了解原因。

您是否尝试过进行apt更新?我相信您已经以root用户身份运行了这些命令,因此不需要sudo。所以不需要运行
sudo su-
?有什么理由这样做吗?这个命令除了创建一个没有任何有用效果的额外层之外似乎什么都没有做。是的,除非你的jenkins用户需要sudo。您可以使用“who”命令检查运行这些命令的用户。如:RUN who如果jenkins用户需要sudo,请查看此内容-顺便说一句,不建议使用systemctl,最佳实践表明,使用启动内部服务器的启动脚本,而不是使用控制服务,会更好。