docker 创建支持JDK 12的ssh_jenkins_slave镜像

yuvru6vn  于 2023-11-17  发布在  Docker
关注(0)|答案(1)|浏览(152)

我正在尝试创建一个自定义的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:

  1. FROM openjdk:12-jdk
  2. ARG user=jenkins
  3. ARG group=jenkins
  4. ARG uid=1000
  5. ARG gid=1000
  6. ARG JENKINS_AGENT_HOME=/home/${user}
  7. ENV JENKINS_AGENT_HOME ${JENKINS_AGENT_HOME}
  8. RUN groupadd -g ${gid} ${group} \
  9. && useradd -d "${JENKINS_AGENT_HOME}" -u "${uid}" -g "${gid}" -m -s /bin/bash "${user}"
  10. # setup SSH server
  11. RUN yum install -y openssh-server
  12. RUN sed -i /etc/ssh/sshd_config \
  13. -e 's/#PermitRootLogin.*/PermitRootLogin no/' \
  14. -e 's/#RSAAuthentication.*/RSAAuthentication yes/' \
  15. -e 's/#PasswordAuthentication.*/PasswordAuthentication no/' \
  16. -e 's/#SyslogFacility.*/SyslogFacility AUTH/' \
  17. -e 's/#LogLevel.*/LogLevel INFO/' && \
  18. mkdir /var/run/sshd
  19. #
  20. # Install Sonar Scanner
  21. #
  22. ARG SONAR_SCANNER_VERSION=3.4.0.1729
  23. ENV SONAR_SCANNER_HOME=/opt/sonar-scanner
  24. ENV PATH $PATH:$SONAR_SCANNER_HOME/bin
  25. RUN yum install -y unzip
  26. RUN curl --insecure -o /tmp/sonarscanner.zip -L https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}.zip && \
  27. unzip /tmp/sonarscanner.zip -d /opt && mv /opt/sonar-scanner-${SONAR_SCANNER_VERSION} /opt/sonar-scanner && \
  28. rm /tmp/sonarscanner.zip && \
  29. ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/bin/sonar-scanner
  30. VOLUME "${JENKINS_AGENT_HOME}" "/tmp" "/run" "/var/run"
  31. WORKDIR "${JENKINS_AGENT_HOME}"
  32. COPY setup-sshd /usr/local/bin/setup-sshd
  33. EXPOSE 22
  34. ENTRYPOINT ["setup-sshd"]

字符串
然而,在我配置Docker代理模板并配置启动Docker镜像后,我无法在我的jenkins管道中使用此镜像。
我在Jenkins身上看到的错误是:

  1. Reason: Template provisioning failed.
  2. java.io.IOException: SSH service hadn't started after 20 seconds.
  3. at io.jenkins.docker.connector.DockerComputerSSHConnector.createLauncher(DockerComputerSSHConnector.java:261)


在我的本地机器上,如果我用镜像启动一个容器,我可以看到SSH服务器正常启动,我可以毫无问题地登录。
有人经历过这种行为吗?以及使用jdk 12创建Jenkins ssh_slave模板的提示?
Thanks in advance

w6mmgewl

w6mmgewl1#

我尝试了与你的文件完全一样的文件,除了它没有声纳部分.你是否在构建镜像时将setup-sshd脚本文件包含到Dockerfile旁边的目录中?你是否在setup-sshd文件上设置了可执行权限?这对我很有效。

相关问题