【发布时间】:2018-03-27 09:43:18
【问题描述】:
嗨,我正在创建 docker 映像,我需要在浏览器中自动打开 jenkins 页面,为此我需要将我的主机系统(windows)~/.ssh/id_rsa.pub 放置到 ~/.ssh/authorized_keys。经过许多网站参考后,我尝试了此代码
ADD http://mirrors.jenkins.io/war-stable/2.107.1/jenkins.war /opt/jenkins.war
RUN chmod 644 /opt/jenkins.war
ENV JENKINS_HOME /jenkins
# configure the container to run jenkins, mapping container port 8080 to that host port
ENTRYPOINT ["java", "-jar", "/opt/jenkins.war"]
EXPOSE 8080
RUN mkdir /jenkins/
RUN echo 2.107.1 > /jenkins/jenkins.install.UpgradeWizard.state
RUN echo 2.107.1 > /jenkins/jenkins.install.InstallUtil.lastExecVersion
RUN apt-get install -y sudo \
adduser admin \
echo "admin ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/admin \
chmod 0440 /etc/sudoers.d/admin \
su - admin -c "touch me"
CMD ["su", "-", "admin", "-c", "/bin/bash"]
enter code here
RUN mkdir ~/.ssh \
chmod 700 ~/.ssh \
touch ~/.ssh/authorized_keys \
chmod 600 ~/.ssh/authorized_keys \
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
RUN ssh -v ********@192.168******* 'DISPLAY=:0 start http://192.168******:8080'
当我尝试构建图像时,我得到了这个错误
Step 19/22 : RUN apt-get install -y sudo adduser admin echo "admin ALL=(root)
NOPASSWD:ALL" > /etc/sudoers.d/admin chmod 0440 /etc/sudoers.d/admin su - admi
n -c "touch admin"
---> Running in bec9f6cc1c7a
E: Opening configuration file touch admin - ifstream::ifstream (2: No such file
or directory)
The command '/bin/sh -c apt-get install -y sudo adduser admin echo "admin ALL=
(root) NOPASSWD:ALL" > /etc/sudoers.d/admin chmod 0440 /etc/sudoers.d/admin su
- admin -c "touch me"' returned a non-zero code: 100
- 谁能帮忙纠正错误
- 接下来要完成的程序 3.我想了解“su - admin -c "touch me"”这行在做什么?????
【问题讨论】: