当前位置: 首页 > 知识库问答 >
问题:

如何ro运行sudo su-in Dockerfile

蒲昀
2023-03-14

我试图在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构建-t jenkins

共有3个答案

尚声
2023-03-14
$ cat Dockerfile

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

如果要更改使用权限,请在Dockerfile中使用USER标志

步致远
2023-03-14

默认情况下,dockerfile将作为虚拟“根”用户运行,因此不需要包含任何sudo命令。

由于示例脚本不包含"-y"默认值,因此您似乎只需将手动安装的描述键入脚本。这永远行不通。而且,在容器中,应用程序也需要在PID-1上,而System ctl不会这样做。

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

叶炜
2023-03-14

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

 类似资料:
  • 我安装了Anaconda并且可以运行Python,所以我假设我正确安装了它。在这篇介绍性文档之后,我将尝试安装PythonV3。3,因此我将以下行复制并粘贴到我的控制台中: 但是,这给了我一个错误: -bash: conda:命令未找到 我需要做什么来运行Conda? 我正在Linux系统上工作。

  • 问题内容: 我仅在尚未运行的情况下才需要运行docker容器。给定此命令。如果它不存在,我将如何运行它。 我可以使用任何脚本或语言。 问题答案: 使用过滤器检查是否存在特定名称的容器:( 请参阅docker ps Filterring ) 该如果第一部分是假的,才执行。 为了安全起见(可能会返回多个名称),您也可以选择这样做(如果您认为“ nginx”一词不能作为任何容器名称的一部分): 要么:

  • 问题内容: 我安装了Anaconda并可以运行Python,因此我假设我已正确安装了它。按照此介绍性文档,我尝试安装Python v3.3,因此将以下行复制并粘贴到控制台中: 但是,这给了我一个错误: 找不到命令 运行Conda我需要做什么? 我正在Linux系统上工作。 问题答案: 你可能想尝试一下: 对于anaconda 2: 对于anaconda 3: 对于anaconda 4: 使用Ana

  • 我对OSGi不是完全的新手,但显然已经够新手了。 我想做的是编写一个OSGi(ApacheFelix)包,并将Java脚本API(JSR-223)与Groovy结合使用。为此,我安装了groovy 2.4.12,它已经是一个OSGi捆绑包,我将groovy运行时(2.4.12)视为Felix远程Shell控制台中的一个活动服务。 我也理解Java的ServiceLoader API和OSGi的捆绑

  • 只有当docker容器尚未运行时,我才需要运行它。给了这个命令。如果它不存在,我将如何运行它。 我对任何脚本或语言都持开放态度。

  • 有人能发布详细的分步说明如何安装Saxon(10 HE)以及如何从MacOS(10.13.6)中的命令行运行转换吗? 我已经在我的计算机上安装了Java 我已经下载了SaxonHE10-6J。来自SourceForge的zip文件 根据这里的建议,我放置了saxon-he-10.6。jar位于myUserName/Library/Java/Extensions文件夹中 然后,我打开终端应用程序并根