【问题标题】:Unknown Instruction : Sudo , when i try to build the docker image未知指令:Sudo,当我尝试构建 docker 映像时
【发布时间】:2019-05-04 00:04:18
【问题描述】:

当我尝试构建以下 docker 文件时,我收到错误“来自守护进程的错误响应:Dockerfile 解析错误第 12 行:未知指令:SUDO”

FROM jenkins
USER root
RUN apt-get -qqy update; apt-get install -qqy sudo
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
RUN wget http://get.docker.com/builds/Linux/x86_64/docker-latest.tgz
RUN tar -xvzf docker-latest.tgz
RUN mv docker/* /usr/bin/
USER jenkins
RUN /usr/local/bin/install-plugins.sh junit git git-client ssh-slaves greenballs chucknorris ws-cleanup
sudo mkdir -p /var/jenkins_home
cd /var/jenkins_home
sudo chown -R 1000 /var/jenkins_home

【问题讨论】:

  • 此文件仅在 Visual Studio Code 中以 UTF-8 编码保存。
  • 您需要使用RUN 指令,就像您对其他所有内容所做的一样。
  • 如果你想在你的 Dockerfile 中拆分成多行,可以使用 '\' char
  • 感谢@JJJ 这对我有用。

标签: docker sudo


【解决方案1】:

以下命令不属于 Dockerfile 语法

sudo mkdir -p /var/jenkins_home
cd /var/jenkins_home
sudo chown -R 1000 /var/jenkins_home

如果您想运行它们,请在它们前面添加RUN。但好的做法是将文件夹从本地安装到容器。如果您要映射 jenkins 主文件夹,请在本地系统上创建 /var/jenkins_home 文件夹,然后使用 -v 选项挂载到 docker 容器。

您可以按照给定的链接在 dockerized jenkins 中使用 docker:https://medium.com/@manav503/how-to-build-docker-images-inside-a-jenkins-container-d59944102f30

【讨论】:

  • 是的。我已经使用了 RUN 指令并使用了@JJJ 的评论。
  • 这可能是一个单独的问题,但既然你谈到了安装,我就把这个问题放在这里。当我运行以下命令“sudo docker run -d -p 8080:8080 -p 50000:50000 \-v /private/var/jenkins_home:/var/jenkins_home \-v /var/run/docker.sock:/var /run/docker.sock \--name jenkins \madugula/jen kins" 它给出了来自守护进程的错误响应:创建挂载源路径'/private/var/jenkins_home'时出错:mkdir /private/var/jenkins_home: 权限被拒绝。
  • 在创建容器之前,源目录/private/var/jenkins_home应该存在于本地系统中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 2022-12-23
  • 2020-09-18
  • 2015-07-26
相关资源
最近更新 更多