我想创建一个基于Jenkins的映像,并安装一些插件npm。为此,我有以下内容Dockerfile:
npm
Dockerfile
FROM jenkins:2.60.3 RUN install-plugins.sh bitbucket USER root RUN apt-get update RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - RUN apt-get install -y nodejs RUN npm --version USER jenkins
效果很好,但是当我运行图像时,我遇到两个问题:
我是否缺少配置Dockerfile的任何东西,还是我想实现的目标根本不可能?
没有看到的内容install- plugins.sh,我无法评论为什么插件没有持久化。这很可能是由不正确的安装目标引起的。持久性在这个阶段不应该成为问题,因为插件安装内置在映像本身中。
install- plugins.sh
对于后一个问题,通过将行添加ENV JAVA_OPTS=-Djenkins.install.runSetupWizard=false到Dockerfile中,您应该能够完全跳过安装向导。请注意,如果Jenkins图像暴露在世界范围内,这可能会带来安全风险,因为此选项会禁止身份验证
ENV JAVA_OPTS=-Djenkins.install.runSetupWizard=false
编辑:Docker图像的默认插件目录是 /var/jenkins_home/plugins
/var/jenkins_home/plugins
编辑2:根据Jenkins Docker存储库上的自述文件,添加该行RUN echo 2.0 > /usr/share/jenkins/ref/jenkins.install.UpgradeWizard.state应完成相同的操作
RUN echo 2.0 > /usr/share/jenkins/ref/jenkins.install.UpgradeWizard.state