我正在尝试创建一个自定义的ssh_slave_plugin docker模板,支持JDK 12。我已经引用了当前的ssh_jenkins_slave Dockerfile(https://github.com/jenkinsci/docker-ssh-slave/blob/master/Dockerfile)。但是我无法使其工作,并且jenkins无法启动Jenkins代理。
背景如下:运行Jenkins 2.176.2并配置Docker云没有问题(它可以连接到Docker引擎以将Docker模板剥离为jenkins slaves)。当使用ssh_jenkins_slave默认镜像时,我可以运行它没有问题。我使用镜像并将JDK版本更新为12:
FROM openjdk:12-jdk
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
ARG JENKINS_AGENT_HOME=/home/${user}
ENV JENKINS_AGENT_HOME ${JENKINS_AGENT_HOME}
RUN groupadd -g ${gid} ${group} \
&& useradd -d "${JENKINS_AGENT_HOME}" -u "${uid}" -g "${gid}" -m -s /bin/bash "${user}"
# setup SSH server
RUN yum install -y openssh-server
RUN sed -i /etc/ssh/sshd_config \
-e 's/#PermitRootLogin.*/PermitRootLogin no/' \
-e 's/#RSAAuthentication.*/RSAAuthentication yes/' \
-e 's/#PasswordAuthentication.*/PasswordAuthentication no/' \
-e 's/#SyslogFacility.*/SyslogFacility AUTH/' \
-e 's/#LogLevel.*/LogLevel INFO/' && \
mkdir /var/run/sshd
#
# Install Sonar Scanner
#
ARG SONAR_SCANNER_VERSION=3.4.0.1729
ENV SONAR_SCANNER_HOME=/opt/sonar-scanner
ENV PATH $PATH:$SONAR_SCANNER_HOME/bin
RUN yum install -y unzip
RUN curl --insecure -o /tmp/sonarscanner.zip -L https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}.zip && \
unzip /tmp/sonarscanner.zip -d /opt && mv /opt/sonar-scanner-${SONAR_SCANNER_VERSION} /opt/sonar-scanner && \
rm /tmp/sonarscanner.zip && \
ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/bin/sonar-scanner
VOLUME "${JENKINS_AGENT_HOME}" "/tmp" "/run" "/var/run"
WORKDIR "${JENKINS_AGENT_HOME}"
COPY setup-sshd /usr/local/bin/setup-sshd
EXPOSE 22
ENTRYPOINT ["setup-sshd"]
字符串
然而,在我配置Docker代理模板并配置启动Docker镜像后,我无法在我的jenkins管道中使用此镜像。
我在Jenkins身上看到的错误是:
Reason: Template provisioning failed.
java.io.IOException: SSH service hadn't started after 20 seconds.
at io.jenkins.docker.connector.DockerComputerSSHConnector.createLauncher(DockerComputerSSHConnector.java:261)
型
在我的本地机器上,如果我用镜像启动一个容器,我可以看到SSH服务器正常启动,我可以毫无问题地登录。
有人经历过这种行为吗?以及使用jdk 12创建Jenkins ssh_slave模板的提示?
Thanks in advance
1条答案
按热度按时间w6mmgewl1#
我尝试了与你的文件完全一样的文件,除了它没有声纳部分.你是否在构建镜像时将
setup-sshd
脚本文件包含到Dockerfile旁边的目录中?你是否在setup-sshd
文件上设置了可执行权限?这对我很有效。