jenkins - 如何创建不同的,已解锁并带有预加载插件的Jenkins2图像?

标签 jenkins docker dockerfile

我基于official Jenkins image启动了一个新的Jenkins2容器。

但是,它需要初始设置。必须输入随机生成的解锁字符串,并且必须设置管理员用户/密码。然后必须安装插件。

我希望能够从dockerfile进行设置。

我列出了要在构建期间安装的插件的列表,但是我该如何面对其他两个插件呢?

基本上,我希望能够创建独特配置的不同图像,并准备通过容器使用。

最佳答案

外挂程式

插件的安装(按照documentation):

# Dockerfile

USER root
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt

# (...)
USER jenkins

如果要生成 plugins.txt ,则在运行上述命令之前,请根据当前的手动jenkins设置运行以下命令:
JENKINS_HOST=<user>:<passwd>@<hostname>:<port>
curl -sSL "http://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/' > plugins.txt

_
# plugins.txt (example)

ace-editor:1.1
git-client:2.1.0
workflow-multibranch:2.9.2
script-security:1.24
durable-task:1.12
pam-auth:1.3
credentials:2.1.8
bitbucket:1.1.5
ssh-credentials:1.12
credentials-binding:1.10
mapdb-api:1.0.9.0
workflow-support:2.10
resource-disposer:0.3
workflow-basic-steps:2.3
email-ext:2.52
ws-cleanup:0.32
ssh-slaves:1.11
workflow-job:2.9
docker-commons:1.5
matrix-project:1.7.1
plain-credentials:1.3
workflow-scm-step:2.3
scm-api:1.3
matrix-auth:1.4
icon-shim:2.0.3
ldap:1.13
pipeline-build-step:2.3
subversion:2.7.1
ant:1.4
branch-api:1.11.1
pipeline-input-step:2.5
bouncycastle-api:2.16.0
workflow-cps:2.23
docker-slaves:1.0.5
cloudbees-folder:5.13
pipeline-stage-step:2.2
workflow-api:2.6
pipeline-stage-view:2.2
workflow-aggregator:2.4
github:1.22.4
token-macro:2.0
pipeline-graph-analysis:1.2
authentication-tokens:1.3
handlebars:1.1.1
gradle:1.25
git:3.0.0
external-monitor-job:1.6
structs:1.5
mercurial:1.57
antisamy-markup-formatter:1.5
jquery-detached:1.2.1
mailer:1.18
workflow-cps-global-lib:2.4
windows-slaves:1.2
workflow-step-api:2.5
docker-workflow:1.9
github-branch-source:1.10
pipeline-milestone-step:1.1
git-server:1.7
github-organization-folder:1.5
momentjs:1.1.1
build-timeout:1.17.1
github-api:1.79
workflow-durable-task-step:2.5
pipeline-rest-api:2.2
junit:1.19
display-url-api:0.5
timestamper:1.8.7

禁用安全和管理员用户

可以通过将 --env JAVA_OPTS =“-Djenkins.install.runSetupWizard = false” 传递给 docker run 命令来进行排序。

例:
docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djenkins.install.runSetupWizard=false" jenkins:latest

关于jenkins - 如何创建不同的,已解锁并带有预加载插件的Jenkins2图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40546755/

相关文章:

postgresql - PostgreSQL的官方Docker镜像如何以及在何处保留其数据库

docker - Cloudera和Docker

docker - 干净地删除 NPM 安装的可执行文件

r - Docker-R创建多个进程

linux - Jenkins 切换用户并执行命令

jenkins - 如何在没有 Maven 和 Docker 的情况下在 Jenkins 声明性管道中执行 SonarQube 扫描器

jenkins - 尝试使用共享库并行触发所有作业

build - Hudson/jenkins 不会因错误而失败

docker - 从 macbook m1 启动 docker 时测试容器错误

docker - 命令 '/bin/sh -c apt-get install erlang'返回了非零代码:1