我想创建一个基于Jenkins的图像来安装一些插件以及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的任何内容,或者我想要实现的内容根本无法实现?
答案 0 :(得分:2)
在没有看到install-plugins.sh
的内容的情况下,我无法评论为什么插件不会持久存在。这很可能是由于安装目的地不正确造成的;在此阶段,持久性不应成为问题,因为插件安装已内置于映像本身。
对于后一个问题,您应该可以通过向Dockerfile添加行ENV JAVA_OPTS=-Djenkins.install.runSetupWizard=false
来完全跳过安装向导。请注意,如果Jenkins图像暴露给整个世界,这可能会带来安全风险,因为此选项会禁用身份验证
编辑:Docker镜像的默认插件目录是/var/jenkins_home/plugins
编辑2:根据Jenkins Docker repo上的README,添加行RUN echo 2.0 > /usr/share/jenkins/ref/jenkins.install.UpgradeWizard.state
应该完成同样的事情
答案 1 :(得分:0)
自2017年发布最新答案以来,事情发生了变化,并且不再有效。当前方法是在以下Dockerfile片段中:
# Prevent setup wizard from running.
# WARNING: Jenkins will start with security disabled, without any password.
ENV JENKINS_OPTS="-Djenkins.install.runSetupWizard=false"
# plugins.txt must contain the list of plugins to be installed
# (One plugin per line, e.g. sidebar-link:1.11.0)
COPY plugins.txt /tmp/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /tmp/plugins.txt