步骤 2/Jenkins 管理员用户设置

为了设置默认的管理员用户和密码,我们必须创建一个名为“default-user.groovy”的 Groovy 脚本文件,如下所示。

import jenkins.model.*
import hudson.security.*
def env = System.getenv()
def jenkins = Jenkins.getInstance()
if(!(jenkins.getSecurityRealm() instanceof HudsonPrivateSecurityRealm))
    jenkins.setSecurityRealm(new HudsonPrivateSecurityRealm(false))
if(!(jenkins.getAuthorizationStrategy() instanceof GlobalMatrixAuthorizationStrategy))
    jenkins.setAuthorizationStrategy(new GlobalMatrixAuthorizationStrategy())
def user = jenkins.getSecurityRealm().createAccount(env.JENKINS_USER, env.JENKINS_PASS)
user.save()
jenkins.getAuthorizationStrategy().add(Jenkins.ADMINISTER, env.JENKINS_USER)
jenkins.save()

第 4 步/构建自定义 Jenkins 镜像

docker build . -t onitroad/jenkins:centos

对于完整的源代码,我们可以在 Github 上查看我们的 git 存储库。

我们也可以从 DockerHub 网站下载我们的自定义 jenkins Docker Image。

步骤 3/添加插件

此外,为了自动安装一些选定的插件,我们将创建一个名为 plugin.txt的文件。
因此,它将由脚本 install-plugins.sh加载。
我们可以使用我们已经准备好的文件如下。

$wget https://raw.githubusercontent.com/faudeltn/Jenkins/master/build/centos/plugins.txt

步骤 1/创建 Dockerfile

首先,让我们通过扩展官方 Jenkins 镜像创建一个名为 Dockerfile的文件,如下所示:

FROM jenkins/jenkins:lts-centos
ENV JENKINS_USER admin
ENV JENKINS_PASS admin

其次,我们将在容器中安装 Docker 引擎,并将默认的 jenkins用户添加到 docker安全组中:

USER root
RUN dnf update -y && dnf install -y 'dnf-command(config-manager)' && \
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo && \
dnf list docker-ce && \
dnf update && \
dnf install docker-ce --nobest -y && \
dnf clean all
RUN usermod -a -G docker jenkins

接下来,我们将禁用名为“SetupWizard”的欢迎页面

USER jenkins
# Skip initial setup
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false"

现在,我们将在 init.groovy.d目录下复制 default-user.groovy,其中将设置默认管理员用户和密码:

# COPY default-user.groovy /usr/share/jenkins/ref/init.groovy.d/
COPY default-user.groovy /usr/share/jenkins/ref/init.groovy.d/

最后,让我们传递一组会自动安装的插件:

# COPY and install the plugins 
COPY plugins.txt /usr/share/jenkins/ref/
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt

我们可以在我们的 git 存储库中找到最终的 Dockerfile,请查看此链接 Jenkins Build

如何构建自定义 Jenkins Docker 镜像

Jenkins 是一个开源的、基于 Java 的自动化服务器,它提供了一种设置持续集成和持续交付 (CI/CD) 管道的简单方法。

持续集成 (CI) 是每次团队成员提交对版本控制的更改时自动构建和测试代码的过程。
持续交付 (CD) 是从构建到生产环境的构建、测试、配置和部署过程。

在本教程中,我们将展示如何使用已安装的 docker 引擎、预安装的插件以及默认的管理员用户和密码来构建 jenkins Docker 镜像。

日期:2020-06-02 22:18:44 来源:oir作者:oir