diff --git a/index.html b/index.html index 1051c746cba7699611635573a0056a7e06355bed..a83766a30a79c38fb533b1ce78741fa084daacd6 100644 --- a/index.html +++ b/index.html @@ -1852,6 +1852,10 @@ RU5ErkJggg==" /> + + + + @@ -1862,10 +1866,6 @@ RU5ErkJggg==" /> - - - - diff --git a/index.json b/index.json index e306e0fc37477df0c54035411b08b8157ad918cf..57b0cebb8e46509aa8bc11de0a32ea812ab94e7e 100644 --- a/index.json +++ b/index.json @@ -25,6 +25,19 @@ "original": "", "poster": "" }, + { + "uri": "https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/", + "title": "使用 Docker 全自动构建 Java 应用", + "type": "wechat", + "date": "2019-12-19 00:00:00 +0000 UTC", + "tags": ["docker", "jenkins", "pipeline", "java"], + "description": "这个过程很长,我们的目标是让所有这些事都自动化。", + "content": " 这次的流水线中,我们使用 Docker 容器来构建我们的 Java 应用。\n我们会在 Docker 容器里运行 Jenkins,再使用 Jenkins 启动一个 Maven 容器,用来编译我们的代码,接着在另一个 Maven 容器中运行测试用例并生成制品(例如 jar 包),然后再在 Jenkins 容器中制作 Docker 镜像,最后将镜像推送到 Docker Hub。\n我们会用到两个 Github 仓库。\n Jenkins-complete:这是主仓库,包含了启动 Jenkins 容器所需的配置文件。 Simple-java-maven-app:使用 Maven 创建的 简单的 Java 应用。 在搭建之前,我们先来了解一下这两个仓库。\n了解 Jenkins-complete 这是我们构建 Jenkins 镜像的核心仓库,它包含了所需的配置文件。我们通过 Jenkins 官方提供的 Docker 镜像启动 Jenkins 容器,然后完成一些动作,例如安装插件、创建用户等。\n安装好之后,我们会创建用来获取 Java 应用的 Github 凭据,还有推送镜像到 Dockerhub 的 Docker 凭据。最后,开始创建我们应用的流水线 job。\n这个过程很长,我们的目标是让所有这些事都自动化。主仓库包含的文件和详细配置会用来创建镜像。当创建好的镜像启动运行以后,我们就有了: 1. 新创建的 admin/admin 用户 2. 已经装好的一些插件 3. Docker 和 Github 凭据 4. 新创建的名为 sample-maven-job 的流水线。\n如果把源码列成树状,就看到下面的结构:\njagadishmanchala@Jagadish-Local:/Volumes/Work$ tree jenkins-complete/ jenkins-complete/ ├── Dockerfile ├── README.md ├── credentials.xml ├── default-user.groovy ├── executors.groovy ├── install-plugins.sh ├── sample-maven-job_config.xml ├── create-credential.groovy └── trigger-job.sh 我们来看看它们都是干嘛的: - default-user.groovy - 这个文件用来创建默认用户 admin/admin。 - executors.groovy - 这个 Groovy 脚本设置 Jenkins 的执行器数量为 5。一个 Jenkins 执行器相当于一个处理进程,Jenkins job 就是通过它运行在对应的 slave/agent 机器上。 - create-credential.groovy - 用来创建 Jenkins 全局凭据的 Groovy 脚本。这个文件可以创建任意的 Jenkins 全局凭据,包括 Docker hub 凭据。我们要修改文件里 Docker hub 的用户名密码,改成我们自己的。这个文件会被复制到镜像里,然后在 Jenkins 启动时运行。 - credentials.xml - XML 凭据文件。这个文件包含了 Github 和 Docker 凭据的。它看起来是这样的:\n\u0026lt;com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl\u0026gt; \u0026lt;scope\u0026gt;GLOBAL\u0026lt;/scope\u0026gt; \u0026lt;id\u0026gt;github\u0026lt;/id\u0026gt; \u0026lt;description\u0026gt;github\u0026lt;/description\u0026gt; \u0026lt;username\u0026gt;jagadish***\u0026lt;/username\u0026gt; \u0026lt;password\u0026gt;{AQAAABAAAAAQoj3DDFSH1******\u0026lt;/password\u0026gt; \u0026lt;/com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl\u0026gt; 仔细观察上面的代码,我们可以看到一个 id 为 “github” 的用户名以及加密后的密码。这个 id 很重要,我们会在后面的流水线中用到。\n怎样拿到加密后的密码呢? 想要拿到密码加密后的内容,你需要到这里去 Jenkins server -\u0026gt; Manage Jenkins -\u0026gt; Script console,然后在输入框里输入下面的代码\nimport hudson.util.Secret def secret = Secret.fromString(\u0026quot;password\u0026quot;) println(secret.getEncryptedValue()) 将 “password” 换成你自己的密码,点击运行,你就得到了加密后的内容。再把这个内容粘贴到 credentials.xml 文件里面就可以了。\nDockerHub 的密码加密过程同上。\n sample-maven-job_config.xml - 这个 XML 文件包含了流水线 job 的细节内容。Jenkins 会在 Jenkins console 里创建一个名为“sample-maven-job”的 job,这个文件包含了它的详细配置。 这个配置很简单,Jenkins 读取文件后,会先创建一个名为 “sample-maven-job” 的流水线 job,然后把仓库指向 Github。 一并设置的还有名为 “github” 的凭据 id。 看起来像是这个样子:\n配置好仓库地址以后,用来远程触发 job 的 token 也就生成了。为了设置远程触发,我们需要打开 “Trigger builds remotely” 选项, 然后把上面的 token 设置到这里。这些配置可以在流水线配置页面的 “Build Triggers” 那一节中看到。为了在后面的 shell 脚本中用这个 token 触发 job, 我们把这个 token 命名为 “MY-TOKEN”。\n trigger-job.sh - 这是一个简单的 shell 脚本,其中的 curl 命令用来触发 job。 虽然,我们在容器里创建了 Jenkins 服务和一个 job,我们还需要一个触发器来触发整个自动构建。我喜欢下面的方法:\n 启动 Jenkins Docker 容器时,完成所有需要做的事,例如创建 job、凭据、用户等。 当容器启动好后触发 job。 我写的这个简单 shell 脚本就是用来在容器启动好以后触发 job 的。shell 脚本用 curl 向 Jenkins 发送了一个 post 请求命令。内容像这样。\n Install-plugins.sh - 这是我们用来安装所有所需插件的脚本。我们会把这个脚本复制到 Jenkins 镜像,并把插件名作为它的参数。 容器启动好以后,这个脚本就会根据插件名对应的插件。\n Dockerfile - 这是自动化过程中最重要的文件。我们会用这个 Docker 文件来创建完整的 Jenkins 服务和所有配置。理解这个文件对于编写你自己的自动化构建是很重要的。 ```dockerfile FROM jenkins/jenkins:lts ARG HOST_DOCKER_GROUP_ID\n使用内置的 install-plugins.sh 脚本安装我们所需的插件 RUN install-plugins.sh pipeline-graph-analysis:1.9 cloudbees-folder:6.7 docker-commons:1.14 jdk-tool:1.2 script-security:1.56 pipeline-rest-api:2.10 command-launcher:1.3 docker-workflow:1.18 docker-plugin:1.1.6\n 设置 admin 用户的环境变量 ENV JENKINS_USER admin ENV JENKINS_PASS admin\n跳过初始设置向导 ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false\n启动脚本,设置执行器的数量、创建 admin 用户 COPY executors.groovy /usr/share/jenkins/ref/init.groovy.d/ COPY default-user.groovy /usr/share/jenkins/ref/init.groovy.d/ COPY create-credential.groovy /usr/share/jenkins/ref/init.groovy.d/\n命名 job ARG job_name_1=\u0026ldquo;sample-maven-job\u0026rdquo; RUN mkdir -p \u0026ldquo;$JENKINS_HOME\u0026rdquo;/jobs/${job_name_1}/latest/\nRUN mkdir -p \u0026ldquo;$JENKINS_HOME\u0026rdquo;/jobs/${job_name_1}/builds/1/ COPY ${job_name_1}_config.xml /usr/share/jenkins/ref/jobs/${job_name_1}/config.xml COPY credentials.xml /usr/share/jenkins/ref/ COPY trigger-job.sh /usr/share/jenkins/ref/\n添加自定义配置到容器里 #COPY ${job_name_1}_config.xml \u0026ldquo;$JENKINS_HOME\u0026rdquo;/jobs/${job_name_1}/config.xml\nUSER root #RUN chown -R jenkins:jenkins \u0026ldquo;$JENKINS_HOME\u0026rdquo;/ RUN chmod -R 777 /usr/share/jenkins/ref/trigger-job.sh\n用给定的用户组 ID 创建 \u0026lsquo;Docker\u0026rsquo; 用户组 将 \u0026lsquo;jenkins\u0026rsquo; 用户加到 \u0026lsquo;Docker\u0026rsquo; 用户组 RUN groupadd docker -g ${HOST_DOCKER_GROUP_ID} \u0026amp;\u0026amp; usermod -a -G docker jenkins\nRUN apt-get update \u0026amp;\u0026amp; apt-get install -y tree nano curl sudo RUN curl https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz | tar xvz -C /tmp/ \u0026amp;\u0026amp; mv /tmp/docker/docker /usr/bin/docker RUN curl -L \u0026ldquo;https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)\u0026rdquo; -o /usr/local/bin/docker-compose RUN chmod 755 /usr/local/bin/docker-compose RUN usermod -a -G sudo jenkins RUN echo \u0026ldquo;jenkins ALL=(ALL:ALL) NOPASSWD:ALL\u0026rdquo; \u0026gt;\u0026gt; /etc/sudoers RUN newgrp docker USER jenkins #ENTRYPOINT [\u0026ldquo;/bin/sh -c /var/jenkins_home/trigger-job.sh\u0026rdquo;]\n - **FROM jenkins/jenkins:lts** - 我们将使用 Jenkins 官方提供的镜像。 - **ARG HOST_DOCKER_GROUP_ID** - 需要记住的重点出现了,虽然我们在 Jenkins 容器里创建了 Docker 容器,但我们没有在 Jenkins 自身内部创建容器。 相反,我们是在它们自己的宿主机上创建了容器。确切的说,是我们让安装在 Jenkins 容器里的 Docker tool 部署一个 Maven 容器到宿主机上。为了实现这个部署,我们需要 Jenkins 容器和宿主机设置一样的用户组。 为了允许 Jenkins 这样的未授权用户访问,我们要把 Jenkins 用户加到 Docker 用户组里去。要做到这件事,我们只需要保证容器里的 Docker 用户组与宿主机上的 Docker 有一致的 GID 即可。用户组 id 可以通过命令 `getent group Docker` 获得。 `HOST_DOCKER_GROUP_ID` 被设为了构建参数,我们要在构建时将宿主机的 Docker 用户组 id 做为参数传进来参与构建。 ```dockerfile # 使用内置的 install-plugins.sh 脚本安装我们所需的插件 RUN install-plugins.sh pipeline-graph-analysis:1.9 \\ cloudbees-folder:6.7 \\ docker-commons:1.14 \\ 接下来是 install-plugins.sh 脚本,把要安装的插件作为参数传给脚本。这个脚本是默认提供的,也可以从宿主机复制一份。\n给 Jenkins Admin 用户设置环境变量 ENV JENKINS_USER admin ENV JENKINS_PASS admin 我们设置了 JENKINS_USER 和 JENKINS_PASS 两个环境变量,default-user.groovy 脚本会用它们创建帐号 admin 用户(密码 admin)。\n# 跳过初始设置向导 ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false 这个使得 Jenkins 以静默模式安装\n# 设置启动器数量和创建 admin 用户的启动脚本 COPY executors.groovy /usr/share/jenkins/ref/init.groovy.d/ COPY default-user.groovy /usr/share/jenkins/ref/init.groovy.d/ COPY create-credential.groovy /usr/share/jenkins/ref/init.groovy.d/ 像我们讨论的那样,上面的脚本会设置执行器各数为 5,创建默认用户 admin/admin。\n需要注意的是,如果去看 Jenkins 官方的 Docker 镜像,你会看到有一个 VOLUME 指向了 /vars/jenkins_home 目录。这个意思是设置 Jenkins 的家目录,类似于物理机上使用包管理器安装 Jenkins 时的目录 /var/lib/jenkins。\n但是,当 volume 挂载好以后,就只有 root 用户有权限在那里编辑或者添加文件。为了让未授权的 jenkins 用户复制内容到 volume, 将所有东西复制到 /usr/share/Jenkins/ref/。 这样当容器启动后,Jenkins 会自动使用 Jenkins 用户把这个位置的文 件拷贝一份到 /vars/jenkins_home 中。\n同样,复制到 /usr/share/jenkins/ref/init.groovy.d/ 的脚本会在 Jenkins 启动后被执行。\n# 命名 job ARG job_name_1=\u0026quot;sample-maven-job\u0026quot; RUN mkdir -p \u0026quot;$JENKINS_HOME\u0026quot;/jobs/${job_name_1}/latest/ RUN mkdir -p \u0026quot;$JENKINS_HOME\u0026quot;/jobs/${job_name_1}/builds/1/ COPY ${job_name_1}_config.xml /usr/share/jenkins/ref/jobs/${job_name_1}/config.xml COPY credentials.xml /usr/share/jenkins/ref/ COPY trigger-job.sh /usr/share/jenkins/ref/ 在上面的例子中,我把我的 job 名字设置为 “sample-maven-job”,然后创建目录,复制一些文件。\nRUN mkdir -p \u0026quot;$JENKINS_HOME\u0026quot;/jobs/${job_name_1}/latest/ RUN mkdir -p \u0026quot;$JENKINS_HOME\u0026quot;/jobs/${job_name_1}/builds/1/ 这些说明很重要,它们在 Jenkins 家目录创建了一些用来存放配置文件的文件夹。latest/ 和 builds/1 存放的目录也需要与其 job 相对应。\n这些创建好以后,我们把已经复制到 /var/share/jenkins/ref 的文件 “sample-maven-job_config.xml”,再让 Jenkins 复制 到 /var/jenkins_home/jobs/,这样就有了 sample-maven-job。\n最后,我们同样把 credentials.xml 和 trigger-job.sh 文件复制到 /usr/share/jenkins/ref。 当容器启动以后, 所有这个目录下的文件都会以 Jenkins 用户的权限移动到 /var/jenkins_home。\nUSER root #RUN chown -R jenkins:jenkins \u0026quot;$JENKINS_HOME\u0026quot;/ RUN chmod -R 777 /usr/share/jenkins/ref/trigger-job.sh # 用指定的用户组组 ID 创建 'docker' 用户组 # 并将 'jenkins' 用户添加到该组 RUN groupadd docker -g ${HOST_DOCKER_GROUP_ID} \u0026amp;\u0026amp; \\ usermod -a -G docker jenkins RUN apt-get update \u0026amp;\u0026amp; apt-get install -y tree nano curl sudo RUN curl https://get.docker.com/builds/Linux/x86_64/docker-latest.tgz | tar xvz -C /tmp/ \u0026amp;\u0026amp; mv /tmp/docker/docker /usr/bin/docker RUN curl -L \u0026quot;https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)\u0026quot; -o /usr/local/bin/docker-compose RUN chmod 755 /usr/local/bin/docker-compose RUN usermod -a -G sudo jenkins RUN echo \u0026quot;jenkins ALL=(ALL:ALL) NOPASSWD:ALL\u0026quot; \u0026gt;\u0026gt; /etc/sudoers RUN newgrp docker USER jenkins 下面的指令以 root 用户执行。在 root 用户的指令下,我们使用宿主机上的 Docker group ID 在容器里创建新的 Docker 用户组。然后把 Jenkins 用户加到 Docker 组当中。\n通过这些,我们就可以使用 Jenkins 用户创建容器了。这样就能突破只有 root 用户能创建容器的限制。为了让 Jenkins 用户能创建容器,我们需要把 Jenkins 用户添加到 Docker 用户组当中去。\n在下面的指令里,我们安装了 docker-ce 和 docker-compose 工具。我们设置了 Docker-compose 的权限。最后,我们把 Jenkins 用户加到 sudoers 文件里,以给到 root 用户特定的权限。\nRUN newgrp docker 这个指令非常重要。通常我们修改一个用户的用户组,都需要重新登录以使新的设置生效。为了略过这一步,我们使用 Docker 命令 newgrp 使设置直接生效。最后,我们回到 Jenkins 用户。\n构建镜像 理解了 Docker 文件后,我们就要用它构建我们的镜像:\ndocker build --build-arg HOST_DOCKER_GROUP_ID=\u0026quot;`getent group docker | cut -d':' -f3`\u0026quot; -t jenkins1 . 在 Dockerfile 的所在目录下运行上面的 Docker 构建指令。在上面的命令中,我们传了 Docker 用户组 ID 给 build-arg。 这个值会传给 HOST_DOCKER_GROUP_ID,用来在 Jenkins 容器里创建相同 ID 的用户组。下载以及安装 Jenkins 插件会增加构建镜像的时间。\n运行镜像 镜像构建好以后,我们以下面的命令运行:\ndocker run -itd -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -p 8880:8080 -p 50000:50000 jenkins1 关于卷挂载有两件重要的事。第一是我们把 Docker 命令挂载到了容器里,当需要其它容器时,就可以在当前容器创建了。\n另一个重要的是挂载 /var/run/Docker.sock。 Docker.sock 是 Docker 守护进程监听的一个 UNIX socket。 这是访问 Docker API 的主要入口点。它也可以是 TCP 类型的 socket,但是出于安全原因,默认设定是 UNIX 类型的。\nDocker 默认通过这个 socket 执行命令。我们把它挂载到 Docker 容器里,是为了能在容器里启动新的其它容器。这个挂载也可以用于服务自省和日志目的。但这增加了被攻击的风险,使用的时候要小心。\n上面的命令执行后,我们就得到一个运行着的 Jenkins 容器。可以通过 URL\u0026lt;ip address\u0026gt;:8880 查看 Jenkins 控制台。使用 “admin/admin” 登录 Jenkins。 我们就可以看到还没有运行过的、使用 SCM,Token 和凭据创建的 sample-maven-job。\n运行 Job 要运行这个 job,我们只需要带着 containerID 以下面的方式执行 trigger-job.sh。\ndocker exec \u0026lt;Jenkins Container ID\u0026gt; /bin/sh -C /var/jenkins_home/trigger-job.sh 运行后我们就可以看到流水线的构建开始了。\n了解 Simple Java Maven App 如上面所说,这个仓库是我们的 Java 应用。它使用 Maven 打包成品,还包含一个 Dockerfile,一个 Jenkinsfile 以及源代码。源代码结构与其它 Maven 项目类似。\n Jenkinsfile - 这是 sample-maven-job 启动前的核心文件。流水线 job 使用 Github 凭据从 Github 下载源代码。 Jenkinsfile 文件里最重要事的是定义 agent。 我们使用 “agent any” 选择任何可用的 agent 来构建代码。我们也可以为某个 stage 定义 agent 环境。\nstage(\u0026quot;build\u0026quot;){ agent { docker { image 'maven:3-alpine' args '-v /root/.m2:/root/.m2' } steps { sh 'mvn -B -DskipTests clean package' stash includes: 'target/*.jar', name: 'targetfiles' } } } 在上面的 stage 中,我们设置它的 agent 环境为 Docker 镜像 “maven:3-alpine.” 这样 Jenkins 就会触发 maven:3-alpine 容器, 然后执行定义在步骤里的命令 mvn -B -DskipTests clean package。\n同样的,单元测试也是以这样的方式运行。docker 启动一个 Maven 镜像,然后执行 mvn test。\nenvironment { registry = \u0026quot;docker.io/\u0026lt;user name\u0026gt;/\u0026lt;image Name\u0026gt;\u0026quot; registryCredential = 'dockerhub' dockerImage = '' } 另一件重要的事是定义环境。我定义了名为 docker.io/jagadesh1982/sample 的仓库,意味着使用最终制品(jar 包)所创建的镜像名称也将遵循这个格式 docker.io/jagadesh1982/sample:\u0026lt;version\u0026gt;。如果你的镜像需要推送到 Dockerhub 的话,记住这一点是非常重要的。Dockerhub 希望镜像名按照 docker.io/\u0026lt;user Name\u0026gt;/\u0026lt;Image Name\u0026gt; 这样的风格命名,以方便上传。\n当构建结束后,新的镜像会被上传到 Dockerhub,本地的镜像则会被删除。\n Dockerfile - 这个仓库包含的 Dockerfile 用来创建 jar 包的镜像。它会拷贝我的 my-app-1.0-SNAPSHOT.jar 到镜像中去。它的内容是这样: dockerfile FROM alpine:3.2 RUN apk --update add openjdk7-jre CMD [\u0026quot;/usr/bin/java\u0026quot;, \u0026quot;-version\u0026quot;] COPY /target/my-app-1.0-SNAPSHOT.jar / CMD /usr/bin/java -jar /my-app-1.0-SNAPSHOT.jar ", + "auhtor": "Jagadish Manchala", + "translator": "tomatofrommars", + "original": "https://dzone.com/articles/full-build-automation-for-java-application-using-d", + "poster": "Jenkins-Docker.png" + }, { "uri": "https://jenkins-zh.github.io/meeting/2019-12-11/", "title": "", @@ -2187,7 +2200,7 @@ "uri": "https://jenkins-zh.github.io/tags/docker/", "title": "Docker", "type": "tags", - "date": "2019-06-17 00:00:00 +0000 UTC", + "date": "2019-12-19 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", @@ -2430,6 +2443,19 @@ "original": "", "poster": "" }, + { + "uri": "https://jenkins-zh.github.io/tags/java/", + "title": "Java", + "type": "tags", + "date": "2019-12-19 00:00:00 +0000 UTC", + "tags": [], + "description": "", + "content": "", + "auhtor": "", + "translator": "", + "original": "", + "poster": "" + }, { "uri": "https://jenkins-zh.github.io/tags/java11/", "title": "Java11", @@ -2447,7 +2473,7 @@ "uri": "https://jenkins-zh.github.io/tags/jenkins/", "title": "Jenkins", "type": "tags", - "date": "2019-12-11 00:00:00 +0000 UTC", + "date": "2019-12-19 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", @@ -2811,7 +2837,7 @@ "uri": "https://jenkins-zh.github.io/tags/pipeline/", "title": "Pipeline", "type": "tags", - "date": "2019-09-11 00:00:00 +0000 UTC", + "date": "2019-12-19 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", @@ -3097,7 +3123,7 @@ "uri": "https://jenkins-zh.github.io/wechat/", "title": "Wechats", "type": "wechat", - "date": "2019-12-11 00:00:00 +0000 UTC", + "date": "2019-12-19 00:00:00 +0000 UTC", "tags": [], "description": "", "content": "", diff --git a/index.xml b/index.xml index 79051b3a43ccd3b7044c6c474bc22764cee41224..2e7aa3e3c978c9ac768e6291728ea522fe8f62ef 100644 --- a/index.xml +++ b/index.xml @@ -36,6 +36,21 @@ GitHub 请您使用同一个 GitHub 账号来与大家交流,不欢迎使用所谓的“小号”。 + + 使用 Docker 全自动构建 Java 应用 + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + Thu, 19 Dec 2019 00:00:00 +0000 + + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + 这次的流水线中,我们使用 Docker 容器来构建我们的 Java 应用。 +我们会在 Docker 容器里运行 Jenkins,再使用 Jenkins 启动一个 Maven 容器,用来编译我们的代码,接着在另一个 Maven 容器中运行测试用例并生成制品(例如 jar 包),然后再在 Jenkins 容器中制作 Docker 镜像,最后将镜像推送到 Docker Hub。 +我们会用到两个 Github 仓库。 + Jenkins-complete:这是主仓库,包含了启动 Jenkins 容器所需的配置文件。 Simple-java-maven-app:使用 Maven 创建的 简单的 Java 应用。 在搭建之前,我们先来了解一下这两个仓库。 +了解 Jenkins-complete 这是我们构建 Jenkins 镜像的核心仓库,它包含了所需的配置文件。我们通过 Jenkins 官方提供的 Docker 镜像启动 Jenkins 容器,然后完成一些动作,例如安装插件、创建用户等。 +安装好之后,我们会创建用来获取 Java 应用的 Github 凭据,还有推送镜像到 Dockerhub 的 Docker 凭据。最后,开始创建我们应用的流水线 job。 +这个过程很长,我们的目标是让所有这些事都自动化。主仓库包含的文件和详细配置会用来创建镜像。当创建好的镜像启动运行以后,我们就有了: 1. 新创建的 admin/admin 用户 2. 已经装好的一些插件 3. Docker 和 Github 凭据 4. + + https://jenkins-zh.github.io/meeting/2019-12-11/ diff --git a/sitemap.xml b/sitemap.xml index 6f9bccc4a128f06243dff105942da694fc4334c8..74a7f51ce6627a4f66cc1f23cce5911bd73eb80a 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -11,6 +11,11 @@ https://jenkins-zh.github.io/about/code-of-conduct/ + + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + 2019-12-19T00:00:00+00:00 + + https://jenkins-zh.github.io/meeting/2019-12-11/ 2019-12-11T00:00:00+00:00 @@ -847,7 +852,7 @@ https://jenkins-zh.github.io/tags/docker/ - 2019-06-17T00:00:00+00:00 + 2019-12-19T00:00:00+00:00 0 @@ -957,6 +962,12 @@ 0 + + https://jenkins-zh.github.io/tags/java/ + 2019-12-19T00:00:00+00:00 + 0 + + https://jenkins-zh.github.io/tags/java11/ 2019-07-15T00:00:00+00:00 @@ -965,7 +976,7 @@ https://jenkins-zh.github.io/tags/jenkins/ - 2019-12-11T00:00:00+00:00 + 2019-12-19T00:00:00+00:00 0 @@ -1123,7 +1134,7 @@ https://jenkins-zh.github.io/tags/pipeline/ - 2019-09-11T00:00:00+00:00 + 2019-12-19T00:00:00+00:00 0 @@ -1253,7 +1264,7 @@ https://jenkins-zh.github.io/wechat/ - 2019-12-11T00:00:00+00:00 + 2019-12-19T00:00:00+00:00 0 diff --git a/tags/docker/index.html b/tags/docker/index.html index 121ad327f5449cb249274560892cd54c857a8870..015c71e142b1dbf52b54f2a0489134e434a9b7fb 100644 --- a/tags/docker/index.html +++ b/tags/docker/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
+

+ 使用 Docker 全自动构建 Java 应用 +

+ + + + +
+ + + + + +
+ +
+ +

10节课带你深入学习 DevOps 工程

diff --git a/tags/docker/index.xml b/tags/docker/index.xml index 942205425105cd23ccdce35ae2dd79ee74eb7ef4..c22f8e265c9bd2271082982bed0e1a2c485491dd 100644 --- a/tags/docker/index.xml +++ b/tags/docker/index.xml @@ -6,11 +6,26 @@ Recent content in Docker on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Mon, 17 Jun 2019 00:00:00 +0000 + Thu, 19 Dec 2019 00:00:00 +0000 + + 使用 Docker 全自动构建 Java 应用 + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + Thu, 19 Dec 2019 00:00:00 +0000 + + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + 这次的流水线中,我们使用 Docker 容器来构建我们的 Java 应用。 +我们会在 Docker 容器里运行 Jenkins,再使用 Jenkins 启动一个 Maven 容器,用来编译我们的代码,接着在另一个 Maven 容器中运行测试用例并生成制品(例如 jar 包),然后再在 Jenkins 容器中制作 Docker 镜像,最后将镜像推送到 Docker Hub。 +我们会用到两个 Github 仓库。 + Jenkins-complete:这是主仓库,包含了启动 Jenkins 容器所需的配置文件。 Simple-java-maven-app:使用 Maven 创建的 简单的 Java 应用。 在搭建之前,我们先来了解一下这两个仓库。 +了解 Jenkins-complete 这是我们构建 Jenkins 镜像的核心仓库,它包含了所需的配置文件。我们通过 Jenkins 官方提供的 Docker 镜像启动 Jenkins 容器,然后完成一些动作,例如安装插件、创建用户等。 +安装好之后,我们会创建用来获取 Java 应用的 Github 凭据,还有推送镜像到 Dockerhub 的 Docker 凭据。最后,开始创建我们应用的流水线 job。 +这个过程很长,我们的目标是让所有这些事都自动化。主仓库包含的文件和详细配置会用来创建镜像。当创建好的镜像启动运行以后,我们就有了: 1. 新创建的 admin/admin 用户 2. 已经装好的一些插件 3. Docker 和 Github 凭据 4. + + 10节课带你深入学习 DevOps 工程 https://jenkins-zh.github.io/wechat/articles/2019/06/2019-06-17-10-courses-to-learn-devops-engineering-in-depth/ diff --git a/tags/index.html b/tags/index.html index c79e97e00202fc74eeb8c4a91a5907e009324e9f..31ed45c38a22e090794b5865beeaa73238679fb9 100644 --- a/tags/index.html +++ b/tags/index.html @@ -957,6 +957,12 @@ var trackOutboundLink = function(id, url) { +

+ + 使用 Docker 全自动构建 Java 应用 + +

+

10节课带你深入学习 DevOps 工程 @@ -1356,6 +1362,22 @@ var trackOutboundLink = function(id, url) {

+ + +

@@ -1385,6 +1407,12 @@ var trackOutboundLink = function(id, url) {

+

+ + 使用 Docker 全自动构建 Java 应用 + +

+

Jenkins 健康检查顾问 @@ -2083,6 +2111,12 @@ var trackOutboundLink = function(id, url) {

+

+ + 使用 Docker 全自动构建 Java 应用 + +

+

介绍新的 GitLab 分支源插件 diff --git a/tags/index.xml b/tags/index.xml index fbcbb3b3aa973c63035d99f59070f764162073df..7809130226540570d3a202c361c9b1d82493dccf 100644 --- a/tags/index.xml +++ b/tags/index.xml @@ -266,7 +266,7 @@ Docker https://jenkins-zh.github.io/tags/docker/ - Mon, 17 Jun 2019 00:00:00 +0000 + Thu, 19 Dec 2019 00:00:00 +0000 https://jenkins-zh.github.io/tags/docker/ @@ -434,6 +434,15 @@ + + Java + https://jenkins-zh.github.io/tags/java/ + Thu, 19 Dec 2019 00:00:00 +0000 + + https://jenkins-zh.github.io/tags/java/ + + + Java11 https://jenkins-zh.github.io/tags/java11/ @@ -446,7 +455,7 @@ Jenkins https://jenkins-zh.github.io/tags/jenkins/ - Wed, 11 Dec 2019 00:00:00 +0000 + Thu, 19 Dec 2019 00:00:00 +0000 https://jenkins-zh.github.io/tags/jenkins/ @@ -653,7 +662,7 @@ Pipeline https://jenkins-zh.github.io/tags/pipeline/ - Wed, 11 Sep 2019 00:00:00 +0000 + Thu, 19 Dec 2019 00:00:00 +0000 https://jenkins-zh.github.io/tags/pipeline/ diff --git a/tags/java/index.html b/tags/java/index.html new file mode 100644 index 0000000000000000000000000000000000000000..f067d73fb26f7e110cd190235fbca3d70dd56f44 --- /dev/null +++ b/tags/java/index.html @@ -0,0 +1,400 @@ + + + + + + + + + + + + Java - Jenkins 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + +
+ + + + +
+ +
+ + +
+ +
+ + +

+ 使用 Docker 全自动构建 Java 应用 +

+ + + + +
+
+ + + +
+
+ + + + +
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + + diff --git a/tags/java/index.xml b/tags/java/index.xml new file mode 100644 index 0000000000000000000000000000000000000000..d23f12ea86773c1a29a4b947f400c6ff253b8eb7 --- /dev/null +++ b/tags/java/index.xml @@ -0,0 +1,30 @@ + + + + Java on Jenkins 中文社区 + https://jenkins-zh.github.io/tags/java/ + Recent content in Java on Jenkins 中文社区 + Hugo -- gohugo.io + zh-CN + Thu, 19 Dec 2019 00:00:00 +0000 + + + + + + 使用 Docker 全自动构建 Java 应用 + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + Thu, 19 Dec 2019 00:00:00 +0000 + + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + 这次的流水线中,我们使用 Docker 容器来构建我们的 Java 应用。 +我们会在 Docker 容器里运行 Jenkins,再使用 Jenkins 启动一个 Maven 容器,用来编译我们的代码,接着在另一个 Maven 容器中运行测试用例并生成制品(例如 jar 包),然后再在 Jenkins 容器中制作 Docker 镜像,最后将镜像推送到 Docker Hub。 +我们会用到两个 Github 仓库。 + Jenkins-complete:这是主仓库,包含了启动 Jenkins 容器所需的配置文件。 Simple-java-maven-app:使用 Maven 创建的 简单的 Java 应用。 在搭建之前,我们先来了解一下这两个仓库。 +了解 Jenkins-complete 这是我们构建 Jenkins 镜像的核心仓库,它包含了所需的配置文件。我们通过 Jenkins 官方提供的 Docker 镜像启动 Jenkins 容器,然后完成一些动作,例如安装插件、创建用户等。 +安装好之后,我们会创建用来获取 Java 应用的 Github 凭据,还有推送镜像到 Dockerhub 的 Docker 凭据。最后,开始创建我们应用的流水线 job。 +这个过程很长,我们的目标是让所有这些事都自动化。主仓库包含的文件和详细配置会用来创建镜像。当创建好的镜像启动运行以后,我们就有了: 1. 新创建的 admin/admin 用户 2. 已经装好的一些插件 3. Docker 和 Github 凭据 4. + + + + \ No newline at end of file diff --git a/tags/java/page/1/index.html b/tags/java/page/1/index.html new file mode 100644 index 0000000000000000000000000000000000000000..31b163476976e5ddc0f9cfdebd6ae261c585a803 --- /dev/null +++ b/tags/java/page/1/index.html @@ -0,0 +1 @@ +https://jenkins-zh.github.io/tags/java/ \ No newline at end of file diff --git a/tags/jenkins/index.html b/tags/jenkins/index.html index fb9da501ad4f3cfc6054c7ae99cf86a2070b98b5..9933d33509580f1371783bab908166e81370f2f3 100644 --- a/tags/jenkins/index.html +++ b/tags/jenkins/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
+

+ 使用 Docker 全自动构建 Java 应用 +

+ + + + +
+

+ + + + +
+ +
+ +

Jenkins 健康检查顾问

diff --git a/tags/jenkins/index.xml b/tags/jenkins/index.xml index d584e720d88d67ebae7e6b4397395b27b2913383..d460d37344ac60cbc4982eceba8a68860f4e6e61 100644 --- a/tags/jenkins/index.xml +++ b/tags/jenkins/index.xml @@ -6,11 +6,26 @@ Recent content in Jenkins on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Wed, 11 Dec 2019 00:00:00 +0000 + Thu, 19 Dec 2019 00:00:00 +0000 + + 使用 Docker 全自动构建 Java 应用 + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + Thu, 19 Dec 2019 00:00:00 +0000 + + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + 这次的流水线中,我们使用 Docker 容器来构建我们的 Java 应用。 +我们会在 Docker 容器里运行 Jenkins,再使用 Jenkins 启动一个 Maven 容器,用来编译我们的代码,接着在另一个 Maven 容器中运行测试用例并生成制品(例如 jar 包),然后再在 Jenkins 容器中制作 Docker 镜像,最后将镜像推送到 Docker Hub。 +我们会用到两个 Github 仓库。 + Jenkins-complete:这是主仓库,包含了启动 Jenkins 容器所需的配置文件。 Simple-java-maven-app:使用 Maven 创建的 简单的 Java 应用。 在搭建之前,我们先来了解一下这两个仓库。 +了解 Jenkins-complete 这是我们构建 Jenkins 镜像的核心仓库,它包含了所需的配置文件。我们通过 Jenkins 官方提供的 Docker 镜像启动 Jenkins 容器,然后完成一些动作,例如安装插件、创建用户等。 +安装好之后,我们会创建用来获取 Java 应用的 Github 凭据,还有推送镜像到 Dockerhub 的 Docker 凭据。最后,开始创建我们应用的流水线 job。 +这个过程很长,我们的目标是让所有这些事都自动化。主仓库包含的文件和详细配置会用来创建镜像。当创建好的镜像启动运行以后,我们就有了: 1. 新创建的 admin/admin 用户 2. 已经装好的一些插件 3. Docker 和 Github 凭据 4. + + Jenkins 健康检查顾问 https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/ diff --git a/tags/jenkins/page/2/index.html b/tags/jenkins/page/2/index.html index e7c56c9f9ee64cafd4f682cf45d6a1ea388c681d..2fa193506c548943a38cdc4d599ddfe78def96d2 100644 --- a/tags/jenkins/page/2/index.html +++ b/tags/jenkins/page/2/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
+

+ 使用 Docker 全自动构建 Java 应用 +

+ + + + +
+
+ + + + +
+ +
+ +

Jenkins 健康检查顾问

diff --git a/tags/jenkins/page/3/index.html b/tags/jenkins/page/3/index.html index b0bc46d26dae6c9ea7e4d7b2abf68f66c317759b..7a77507de93ce645f82d4ff27d7d4b9c85d08188 100644 --- a/tags/jenkins/page/3/index.html +++ b/tags/jenkins/page/3/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
+

+ 使用 Docker 全自动构建 Java 应用 +

+ + + + +
+
+ + + + +
+ +
+ +

Jenkins 健康检查顾问

diff --git a/tags/jenkins/page/4/index.html b/tags/jenkins/page/4/index.html index 543bfd214f296d6b62e8e74b2e3f90874de3a896..1a60b4d52a9b3c0e0f0e8d66e2dd4db4973d2b06 100644 --- a/tags/jenkins/page/4/index.html +++ b/tags/jenkins/page/4/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
+

+ 使用 Docker 全自动构建 Java 应用 +

+ + + + +
+
+ + + + +
+ +
+ +

Jenkins 健康检查顾问

diff --git a/tags/pipeline/index.html b/tags/pipeline/index.html index da573e2724f98a4bbbe0c331c68846c1eddb9776..b3f852753bca1e828518ac39219a1697bc721538 100644 --- a/tags/pipeline/index.html +++ b/tags/pipeline/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
+

+ 使用 Docker 全自动构建 Java 应用 +

+ + + + +
+
+ + + + +
+ +
+ +

介绍新的 GitLab 分支源插件

diff --git a/tags/pipeline/index.xml b/tags/pipeline/index.xml index 42d8a2087ab71cf2dc8115cff1ee5260a52929fe..7bc6474c4a418f3a7364ab218d34de0e76ad401b 100644 --- a/tags/pipeline/index.xml +++ b/tags/pipeline/index.xml @@ -6,11 +6,26 @@ Recent content in Pipeline on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Wed, 11 Sep 2019 00:00:00 +0000 + Thu, 19 Dec 2019 00:00:00 +0000 + + 使用 Docker 全自动构建 Java 应用 + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + Thu, 19 Dec 2019 00:00:00 +0000 + + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + 这次的流水线中,我们使用 Docker 容器来构建我们的 Java 应用。 +我们会在 Docker 容器里运行 Jenkins,再使用 Jenkins 启动一个 Maven 容器,用来编译我们的代码,接着在另一个 Maven 容器中运行测试用例并生成制品(例如 jar 包),然后再在 Jenkins 容器中制作 Docker 镜像,最后将镜像推送到 Docker Hub。 +我们会用到两个 Github 仓库。 + Jenkins-complete:这是主仓库,包含了启动 Jenkins 容器所需的配置文件。 Simple-java-maven-app:使用 Maven 创建的 简单的 Java 应用。 在搭建之前,我们先来了解一下这两个仓库。 +了解 Jenkins-complete 这是我们构建 Jenkins 镜像的核心仓库,它包含了所需的配置文件。我们通过 Jenkins 官方提供的 Docker 镜像启动 Jenkins 容器,然后完成一些动作,例如安装插件、创建用户等。 +安装好之后,我们会创建用来获取 Java 应用的 Github 凭据,还有推送镜像到 Dockerhub 的 Docker 凭据。最后,开始创建我们应用的流水线 job。 +这个过程很长,我们的目标是让所有这些事都自动化。主仓库包含的文件和详细配置会用来创建镜像。当创建好的镜像启动运行以后,我们就有了: 1. 新创建的 admin/admin 用户 2. 已经装好的一些插件 3. Docker 和 Github 凭据 4. + + 介绍新的 GitLab 分支源插件 https://jenkins-zh.github.io/wechat/articles/2019/09/2019-09-11-introducing-gitlab-branch-source-plugin/ diff --git a/tags/pipeline/page/2/index.html b/tags/pipeline/page/2/index.html index a83cd85beeeb41508815a0f0593553e87bcadf52..34344b74d312527ceea35d1e682d30e5308fb8a2 100644 --- a/tags/pipeline/page/2/index.html +++ b/tags/pipeline/page/2/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
+

+ 使用 Docker 全自动构建 Java 应用 +

+ + + + +
+
+ + + + +
+ +
+ +

介绍新的 GitLab 分支源插件

diff --git a/wechat/articles/2019/01/2019-01-16-webhook-firewalls/index.html b/wechat/articles/2019/01/2019-01-16-webhook-firewalls/index.html index ad75de8c23bb1d10d1e8914350e31eaecbfca3c6..d54b697288504c75f1b1ab415d84a401bc46807d 100644 --- a/wechat/articles/2019/01/2019-01-16-webhook-firewalls/index.html +++ b/wechat/articles/2019/01/2019-01-16-webhook-firewalls/index.html @@ -476,8 +476,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -488,6 +488,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/01/2019-01-23-configuring-jenkins-pipeline-with-yaml-file/index.html b/wechat/articles/2019/01/2019-01-23-configuring-jenkins-pipeline-with-yaml-file/index.html index 84b3d946b2cc576990d440b18c92ec1951baab5e..c13e61727b99a4f9318509cd26d5356c8556bdb3 100644 --- a/wechat/articles/2019/01/2019-01-23-configuring-jenkins-pipeline-with-yaml-file/index.html +++ b/wechat/articles/2019/01/2019-01-23-configuring-jenkins-pipeline-with-yaml-file/index.html @@ -652,8 +652,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 介绍新的 GitLab 分支源插件 + + 使用 Docker 全自动构建 Java 应用
  • @@ -664,6 +664,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 介绍新的 GitLab 分支源插件 + +
  • + + + +
  • Jenkins 可视化阶段视图的改进 diff --git a/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/index.html b/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/index.html index 21d4880d65c6b91bb46f847c139b0e84346b1322..21d3c9126c7fbfae3928347ae56f7105653ab03c 100644 --- a/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/index.html +++ b/wechat/articles/2019/02/2019-02-27-jenkins-script-console-in-practice/index.html @@ -413,8 +413,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -425,6 +425,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/index.html b/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/index.html index 42d0f61b19b935a326737584851cc16aad1cfabc..abf3a6dd2614005a726e7e98d0b60676ad99aa85 100644 --- a/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/index.html +++ b/wechat/articles/2019/03/2019-01-08-mpl-modular-pipeline-library/index.html @@ -577,8 +577,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -589,6 +589,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/03/2019-03-13-electron-pipeline-demo/index.html b/wechat/articles/2019/03/2019-03-13-electron-pipeline-demo/index.html index 81147395a006ceccc64e54116047342d6d5a0676..ae2a0953b79b2bf23518f6822fa1d21063b1608b 100644 --- a/wechat/articles/2019/03/2019-03-13-electron-pipeline-demo/index.html +++ b/wechat/articles/2019/03/2019-03-13-electron-pipeline-demo/index.html @@ -492,8 +492,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -504,6 +504,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/04/2019-04-08-becoming-contributor-intro/index.html b/wechat/articles/2019/04/2019-04-08-becoming-contributor-intro/index.html index cb8bb393f7e8e17262f95db9f3d247ef4a63e597..adb822b7ac10ce2649b5d1a2a654ad8d6a9b25a1 100644 --- a/wechat/articles/2019/04/2019-04-08-becoming-contributor-intro/index.html +++ b/wechat/articles/2019/04/2019-04-08-becoming-contributor-intro/index.html @@ -509,8 +509,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -521,6 +521,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/index.html b/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/index.html index 40e9158082c4913f9d3812e6898814b0097694a3..45c66bc164aef7af2ab437d8d79eef694341aca9 100644 --- a/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/index.html +++ b/wechat/articles/2019/04/2019-04-12-brief-analysis-the-encryption-algorithm-of-the-built-in-jenkins-user-database/index.html @@ -446,8 +446,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -458,6 +458,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/index.html b/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/index.html index 0e1dd17f517a2535addfa4d04712a9574cbd33f2..b59b94d2124f36816be1b5fff2910315e38edc58 100644 --- a/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/index.html +++ b/wechat/articles/2019/04/2019-04-15-zabbix-monitor-jenkins/index.html @@ -535,8 +535,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -547,6 +547,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/04/2019-04-23-jenkins-master-shared-home/index.html b/wechat/articles/2019/04/2019-04-23-jenkins-master-shared-home/index.html index eb34f80f2dcaa7743a37ba721abe7249a556b9cb..b75c7528bb9acd2984bce1d74895d884f81cfd5c 100644 --- a/wechat/articles/2019/04/2019-04-23-jenkins-master-shared-home/index.html +++ b/wechat/articles/2019/04/2019-04-23-jenkins-master-shared-home/index.html @@ -460,8 +460,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -472,6 +472,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/04/2019-04-25-jenkins-ansible-nginx/index.html b/wechat/articles/2019/04/2019-04-25-jenkins-ansible-nginx/index.html index 89701c2a804d0142f9d42d130e1bd9c26f373cd0..ab76b13cded8e976a6ffc1deb15fba8a27bb4901 100644 --- a/wechat/articles/2019/04/2019-04-25-jenkins-ansible-nginx/index.html +++ b/wechat/articles/2019/04/2019-04-25-jenkins-ansible-nginx/index.html @@ -604,8 +604,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -616,6 +616,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/index.html b/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/index.html index 64af6da0dadab601a5cecea6433398797b0ce7bb..d2b1271c9eb1404572751b8e2e2601f93e71ec8d 100644 --- a/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/index.html +++ b/wechat/articles/2019/04/2019-04-29-progressive-delivery-with-jenkins-x-automatic-cana/index.html @@ -461,8 +461,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -473,6 +473,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/index.html b/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/index.html index 389bf97a018a3a2133b233c1814745ac2661ecd5..f9990c3d36a6094344bc212c081df5a63d4d9702 100644 --- a/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/index.html +++ b/wechat/articles/2019/05/2019-05-06-jenkins-plugin-develop-within-two-days-part01/index.html @@ -628,8 +628,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -640,6 +640,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-07-jenkins-install-plugins-shell/index.html b/wechat/articles/2019/05/2019-05-07-jenkins-install-plugins-shell/index.html index 97bf092aa775f4b32db6371bc641c5935c5ec183..ac57167703898d888c16eff7ba465335e1d0afdc 100644 --- a/wechat/articles/2019/05/2019-05-07-jenkins-install-plugins-shell/index.html +++ b/wechat/articles/2019/05/2019-05-07-jenkins-install-plugins-shell/index.html @@ -422,8 +422,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -434,6 +434,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/index.html b/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/index.html index f3014419c90f7f42a71d86fec970227d3a7c54ff..2d0bc8d5f685650974e0b12786ff13cdfdf5d502 100644 --- a/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/index.html +++ b/wechat/articles/2019/05/2019-05-08-jenkins-plugin-develop-within-two-days-part02/index.html @@ -647,8 +647,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -659,6 +659,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-09-jenkins-release/index.html b/wechat/articles/2019/05/2019-05-09-jenkins-release/index.html index 454ae4e4171741f42f2e4709dc379bdcbd2a6bfb..9b298f34ffccc0d05eee41a9fd8fb57d17edee50 100644 --- a/wechat/articles/2019/05/2019-05-09-jenkins-release/index.html +++ b/wechat/articles/2019/05/2019-05-09-jenkins-release/index.html @@ -377,8 +377,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -389,6 +389,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-13-jenkins-book-gift/index.html b/wechat/articles/2019/05/2019-05-13-jenkins-book-gift/index.html index 3d8ba7912e5e33112089657ad2d5835441bbb597..51657f93ba09920740c87728720bda63573491c3 100644 --- a/wechat/articles/2019/05/2019-05-13-jenkins-book-gift/index.html +++ b/wechat/articles/2019/05/2019-05-13-jenkins-book-gift/index.html @@ -373,8 +373,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -385,6 +385,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/index.html b/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/index.html index 28fe2293c8a93610b44d715b13a61ffffe367c72..756f7bf7dcc0d698e0af30be279c0f920d32d641 100644 --- a/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/index.html +++ b/wechat/articles/2019/05/2019-05-14-devops-jenkins-credential-manage/index.html @@ -445,8 +445,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -457,6 +457,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/index.html b/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/index.html index e9c0f6337cc4ef81b9cc7fa2cbdebce2dc05065d..ef09345d756cc6d1a4aaf3a0eed9676c4285d3d9 100644 --- a/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/index.html +++ b/wechat/articles/2019/05/2019-05-15-gsoc-annoncement/index.html @@ -389,8 +389,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -401,6 +401,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/index.html b/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/index.html index af5829078276ecffaa8b1e0a05ec8335dfd7ab2a..9261429b34c5eb081daf4c452d53411b312514b1 100644 --- a/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/index.html +++ b/wechat/articles/2019/05/2019-05-17-from-jenkins-to-jenkins-x/index.html @@ -588,8 +588,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -600,6 +600,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/index.html b/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/index.html index 52ddd8bdb9f39ad52e3bb0e80d07804635d4dfd2..9f1a105d8b35d81b6af8b446d3d80bdd28559b36 100644 --- a/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/index.html +++ b/wechat/articles/2019/05/2019-05-20-jenkins-ansible-springboot/index.html @@ -596,8 +596,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -608,6 +608,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/index.html b/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/index.html index afa4c614aae55e1f6c860aa31b3d41167a39de87..b29c44ac8d6ce44c595c66f71a3c159a37c22c17 100644 --- a/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/index.html +++ b/wechat/articles/2019/05/2019-05-22-jacoco-coverage-for-functional-test/index.html @@ -520,8 +520,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -532,6 +532,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-27-docs-sig-announcement/index.html b/wechat/articles/2019/05/2019-05-27-docs-sig-announcement/index.html index d58f8fcc8930729118461c08f51faa19fa050d01..c6fbb94aee0b96a86277c1dacaf2022e24728919 100644 --- a/wechat/articles/2019/05/2019-05-27-docs-sig-announcement/index.html +++ b/wechat/articles/2019/05/2019-05-27-docs-sig-announcement/index.html @@ -367,10 +367,10 @@ var trackOutboundLink = function(id, url) {
  • 在 Kubernetes 上使用 Jenkins
  • -
  • Jenkins 插件的微基准测试框架
  • -
  • 多分支流水线任务对 GitLab SCM 的支持
  • +
  • Jenkins 插件的微基准测试框架
  • +
    diff --git a/wechat/articles/2019/05/2019-05-28-jenkins-pipeline-shared-lib-unit-test/index.html b/wechat/articles/2019/05/2019-05-28-jenkins-pipeline-shared-lib-unit-test/index.html index 9a1fdc4a1f2527ef8ef73d83dff42ff66a2005d8..09e8e96bd13217484aae92f5682b8263e1f3e2cb 100644 --- a/wechat/articles/2019/05/2019-05-28-jenkins-pipeline-shared-lib-unit-test/index.html +++ b/wechat/articles/2019/05/2019-05-28-jenkins-pipeline-shared-lib-unit-test/index.html @@ -678,8 +678,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -690,6 +690,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/05/2019-05-29-jenkins-release/index.html b/wechat/articles/2019/05/2019-05-29-jenkins-release/index.html index 28ca0a662b90787ac4d2dd9b3e715ba4cad12a1e..93bc7662e67cc9776446d3f22e97e5c7b5cd74e7 100644 --- a/wechat/articles/2019/05/2019-05-29-jenkins-release/index.html +++ b/wechat/articles/2019/05/2019-05-29-jenkins-release/index.html @@ -400,8 +400,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -412,6 +412,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/06/2019-06-10-jenkins-pipeline-workshop/index.html b/wechat/articles/2019/06/2019-06-10-jenkins-pipeline-workshop/index.html index 280f90a48a9149bf68b9750fbfd1471e667ea21f..b2e748e4b9b425e004b0cff8a215130e449fd647 100644 --- a/wechat/articles/2019/06/2019-06-10-jenkins-pipeline-workshop/index.html +++ b/wechat/articles/2019/06/2019-06-10-jenkins-pipeline-workshop/index.html @@ -384,8 +384,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -396,6 +396,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/06/2019-06-14-setup-jenkins-ci-in-30-minutes/index.html b/wechat/articles/2019/06/2019-06-14-setup-jenkins-ci-in-30-minutes/index.html index 8314084d8051a1659caaa27b63d0d5782db39bc9..0a7075f32f8e08998a3b4ede17359d515f80b14c 100644 --- a/wechat/articles/2019/06/2019-06-14-setup-jenkins-ci-in-30-minutes/index.html +++ b/wechat/articles/2019/06/2019-06-14-setup-jenkins-ci-in-30-minutes/index.html @@ -593,8 +593,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -605,6 +605,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/06/2019-06-24-becoming-contributor-newbie-tickets/index.html b/wechat/articles/2019/06/2019-06-24-becoming-contributor-newbie-tickets/index.html index ee0f65eda566ab307d8a4edb4ddf9de49b6cf963..1f04cd0048133ee113e423d200cf085f92ed8232 100644 --- a/wechat/articles/2019/06/2019-06-24-becoming-contributor-newbie-tickets/index.html +++ b/wechat/articles/2019/06/2019-06-24-becoming-contributor-newbie-tickets/index.html @@ -552,8 +552,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -564,6 +564,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/06/2019-06-26-using-active-choices-plugin-merge-jobs/index.html b/wechat/articles/2019/06/2019-06-26-using-active-choices-plugin-merge-jobs/index.html index 7fb7c2de0f381190f1eaeaa108ceded4637aac77..20064e71b1e66237331a86920920a5171514758f 100644 --- a/wechat/articles/2019/06/2019-06-26-using-active-choices-plugin-merge-jobs/index.html +++ b/wechat/articles/2019/06/2019-06-26-using-active-choices-plugin-merge-jobs/index.html @@ -642,8 +642,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -654,6 +654,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/07/2019-07-08-wechat-answer-1/index.html b/wechat/articles/2019/07/2019-07-08-wechat-answer-1/index.html index 0089bb15f185ed9d1270763b03639d83ed921cec..707cf2a66cc55ac8640b4462cf2989a6cf132bdd 100644 --- a/wechat/articles/2019/07/2019-07-08-wechat-answer-1/index.html +++ b/wechat/articles/2019/07/2019-07-08-wechat-answer-1/index.html @@ -562,8 +562,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 介绍新的 GitLab 分支源插件 + + 使用 Docker 全自动构建 Java 应用
  • @@ -574,6 +574,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 介绍新的 GitLab 分支源插件 + +
  • + + + +
  • Jenkins 可视化阶段视图的改进 diff --git a/wechat/articles/2019/07/2019-07-09-jenkins-release/index.html b/wechat/articles/2019/07/2019-07-09-jenkins-release/index.html index 533f529a0387f141b659dddd6333e91d105be09c..bd6b09aec230ec493b6658b1ac0db81ae725ee05 100644 --- a/wechat/articles/2019/07/2019-07-09-jenkins-release/index.html +++ b/wechat/articles/2019/07/2019-07-09-jenkins-release/index.html @@ -434,8 +434,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -446,6 +446,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/index.html b/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/index.html index 850dfc1166b4fc1cab079d1a6f4f13f801285b0d..4c1f37b67e6ddeb20eba6bb5a70c13683cdf0f9d 100644 --- a/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/index.html +++ b/wechat/articles/2019/07/2019-07-14-jenkins-pipeline-workshop/index.html @@ -410,8 +410,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -422,6 +422,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/07/2019-07-18-jenkins-weekly-release/index.html b/wechat/articles/2019/07/2019-07-18-jenkins-weekly-release/index.html index 17974a4c183f5dc75a515d8813ff6d09585f02a6..20c5b89434e71b43040f74f490dc850abe80e21c 100644 --- a/wechat/articles/2019/07/2019-07-18-jenkins-weekly-release/index.html +++ b/wechat/articles/2019/07/2019-07-18-jenkins-weekly-release/index.html @@ -412,8 +412,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -424,6 +424,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/index.html b/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/index.html index 8e19e9b37266bbd2f31fa6a081cc62b286a5a0e9..b0dbeaf0d2aae94da2cae8d9e31ee27618d01a65 100644 --- a/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/index.html +++ b/wechat/articles/2019/07/2019-07-29-leveraging-jenkins-on-kubernetes/index.html @@ -381,10 +381,10 @@ var trackOutboundLink = function(id, url) {
  • 在大型企业里维护多分支流水线
  • -
  • 多分支流水线任务对 GitLab SCM 的支持
  • -
  • Jenkins 插件的微基准测试框架
  • +
  • 多分支流水线任务对 GitLab SCM 的支持
  • +
  • Jenkins 文档特别兴趣小组
  • diff --git a/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/index.html b/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/index.html index dbedffbefd524f00ca0699f08625b715d99fab99..bbd2834a0c36dc477f8fb446ba7a5f3044ff848d 100644 --- a/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/index.html +++ b/wechat/articles/2019/07/2019-07-31-pipeline-config-history-plugin/index.html @@ -454,8 +454,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 介绍新的 GitLab 分支源插件 + + 使用 Docker 全自动构建 Java 应用
  • @@ -466,6 +466,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 介绍新的 GitLab 分支源插件 + +
  • + + + +
  • Jenkins 可视化阶段视图的改进 diff --git a/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/index.html b/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/index.html index c162544820bc4f7615b1d8bb2d6b1bd80090224c..6642aa9309f30b0e485cfba409d55505a1263ff5 100644 --- a/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/index.html +++ b/wechat/articles/2019/08/2019-08-05-jenkins-multi-branch-pipeline/index.html @@ -436,8 +436,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - Jenkins 健康检查顾问 + + 使用 Docker 全自动构建 Java 应用
  • @@ -448,6 +448,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + Jenkins 健康检查顾问 + +
  • + + + + diff --git a/wechat/articles/2019/08/2019-08-15-jenkins-pipeline-stage-result-visualization-improvements/index.html b/wechat/articles/2019/08/2019-08-15-jenkins-pipeline-stage-result-visualization-improvements/index.html index 760df91d2250f55280c517066a27d5a7c2a7f6bb..e4660b975c7eb3bf832aeb6d04927a71324af2b1 100644 --- a/wechat/articles/2019/08/2019-08-15-jenkins-pipeline-stage-result-visualization-improvements/index.html +++ b/wechat/articles/2019/08/2019-08-15-jenkins-pipeline-stage-result-visualization-improvements/index.html @@ -466,8 +466,8 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • - - 介绍新的 GitLab 分支源插件 + + 使用 Docker 全自动构建 Java 应用
  • @@ -478,6 +478,15 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 介绍新的 GitLab 分支源插件 + +
  • + + + + diff --git a/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/index.html b/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/index.html index f04d0d97059dfadec364bdc5dd2cb7bdd1001a4c..25b1ac65258b54b83cac5a023ad7359843349db8 100644 --- a/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/index.html +++ b/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/index.html @@ -243,6 +243,14 @@ var trackOutboundLink = function(id, url) { + + + + + + + + @@ -408,6 +416,12 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link +
  • + + 使用 Docker 全自动构建 Java 应用 + +
  • +
  • @@ -415,6 +429,9 @@ f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
  • + + +
  • 在大型企业里维护多分支流水线 diff --git a/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/Jenkins-Docker.png b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/Jenkins-Docker.png new file mode 100644 index 0000000000000000000000000000000000000000..241409d41bdd519fb275cf39231d1a03e57336b8 Binary files /dev/null and b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/Jenkins-Docker.png differ diff --git a/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/index.html b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/index.html new file mode 100644 index 0000000000000000000000000000000000000000..ff8c7011558c71807c5e336e6392335cd1389a56 --- /dev/null +++ b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/index.html @@ -0,0 +1,998 @@ + + + + + + + + + + + + 使用 Docker 全自动构建 Java 应用 - Jenkins 中文社区 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    + + +
    + + + + + + + + + +
    + + + + +
    +
    + +
    +
    +
    + + + + “使用 Docker 全自动构建 Java 应用” + 更新于:December 19, 2019 +
    + + 改善此页 + + + + + + + + + + +
    +
    +
    + + + +
    + + + + + + + + + + + + + + + + + + diff --git a/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-configure.png b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-configure.png new file mode 100644 index 0000000000000000000000000000000000000000..0f1ca574f3a7c53686aabb7667cc58bab546f1a4 Binary files /dev/null and b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-configure.png differ diff --git a/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-stages.png b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-stages.png new file mode 100644 index 0000000000000000000000000000000000000000..25a9ba62d534f250458249dbed43dec6086229f2 Binary files /dev/null and b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-stages.png differ diff --git a/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-trigger.png b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-trigger.png new file mode 100644 index 0000000000000000000000000000000000000000..20d209835b39fa17d446ebf69ac7d415246bf978 Binary files /dev/null and b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-trigger.png differ diff --git a/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-view.png b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-view.png new file mode 100644 index 0000000000000000000000000000000000000000..97e360877bba00ffb9ac1d5df831232f3d3ae0df Binary files /dev/null and b/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/pipeline-view.png differ diff --git a/wechat/index.html b/wechat/index.html index 3c95b739ddfdc42028050710795da6b9da8ff194..bd079e4ce5c5cbdcd2664ee23b29371a5bd6f454 100644 --- a/wechat/index.html +++ b/wechat/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 使用 Docker 全自动构建 Java 应用 +

    + + + + +
    +
  • + + + + +
    + +
    + +

    Jenkins 健康检查顾问

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins 2019 年 Board 和 Officer positions 选举更新 -

    - - - - -
    -
    - - -
    diff --git a/wechat/index.xml b/wechat/index.xml index 7d6fb6e81e1de717133747d807b5ec9bcb4ffa72..eb7edd73c6fcce18d639ef3f600c7fb81fc6fbc2 100644 --- a/wechat/index.xml +++ b/wechat/index.xml @@ -6,11 +6,26 @@ Recent content in Wechats on Jenkins 中文社区 Hugo -- gohugo.io zh-CN - Wed, 11 Dec 2019 00:00:00 +0000 + Thu, 19 Dec 2019 00:00:00 +0000 + + 使用 Docker 全自动构建 Java 应用 + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + Thu, 19 Dec 2019 00:00:00 +0000 + + https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-19-full-build-automation-for-java-application-using-docker/ + 这次的流水线中,我们使用 Docker 容器来构建我们的 Java 应用。 +我们会在 Docker 容器里运行 Jenkins,再使用 Jenkins 启动一个 Maven 容器,用来编译我们的代码,接着在另一个 Maven 容器中运行测试用例并生成制品(例如 jar 包),然后再在 Jenkins 容器中制作 Docker 镜像,最后将镜像推送到 Docker Hub。 +我们会用到两个 Github 仓库。 + Jenkins-complete:这是主仓库,包含了启动 Jenkins 容器所需的配置文件。 Simple-java-maven-app:使用 Maven 创建的 简单的 Java 应用。 在搭建之前,我们先来了解一下这两个仓库。 +了解 Jenkins-complete 这是我们构建 Jenkins 镜像的核心仓库,它包含了所需的配置文件。我们通过 Jenkins 官方提供的 Docker 镜像启动 Jenkins 容器,然后完成一些动作,例如安装插件、创建用户等。 +安装好之后,我们会创建用来获取 Java 应用的 Github 凭据,还有推送镜像到 Dockerhub 的 Docker 凭据。最后,开始创建我们应用的流水线 job。 +这个过程很长,我们的目标是让所有这些事都自动化。主仓库包含的文件和详细配置会用来创建镜像。当创建好的镜像启动运行以后,我们就有了: 1. 新创建的 admin/admin 用户 2. 已经装好的一些插件 3. Docker 和 Github 凭据 4. + + Jenkins 健康检查顾问 https://jenkins-zh.github.io/wechat/articles/2019/12/2019-12-11-jenkins-health-advisor-by-cloudbees-is-here/ diff --git a/wechat/page/10/index.html b/wechat/page/10/index.html index e41924f0dfcc4cf0be6f274b038365f296a82026..37887e0f28d54410f74702e399ae2663a4f422dd 100644 --- a/wechat/page/10/index.html +++ b/wechat/page/10/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) { +
    + + + + +
    + +
    + +

    MPL - 模块化的流水线库

    @@ -456,33 +483,6 @@ Jenkins 中文社区邀您参与社区共同成长 在开源盛会开展的同 - -
    - -
    - - -

    - Windows 安装程序更新 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/11/index.html b/wechat/page/11/index.html index f9dbb6bbc55a2136fe7e7280f30a1209e9352e4e..1ff966039c04fd13dc1dae353a82e5a6181fe230 100644 --- a/wechat/page/11/index.html +++ b/wechat/page/11/index.html @@ -208,6 +208,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Windows 安装程序更新 +

    + + + + +
    +
    + + + + +
    + +
    + +

    什么是 CI/CD?

    diff --git a/wechat/page/2/index.html b/wechat/page/2/index.html index 3d4c9506ddb55af70ea62b569b68d58986b2c4d2..f62273273cbd8573817b70e84ef2eb20c7027793 100644 --- a/wechat/page/2/index.html +++ b/wechat/page/2/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 2019 年 Board 和 Officer positions 选举更新 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 插件中心国内镜像源发布

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 2019 DEVOPS WORLD和JENKINS WORLD 获奖者公布 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/3/index.html b/wechat/page/3/index.html index 90358c6e11d3460c62f4f9d59aaf28108619911d..3d8c487a9406d350e007d903a167eac9340d6385 100644 --- a/wechat/page/3/index.html +++ b/wechat/page/3/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 2019 DEVOPS WORLD和JENKINS WORLD 获奖者公布 +

    + + + + +
    +
    + + + + +
    + +
    + +

    React Plugin Template,让你可以使用 React 来编写 Jenkins 插件

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins 可视化阶段视图的改进 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/4/index.html b/wechat/page/4/index.html index 2ca18a2ab1221f7c2d7e0900d7cc2b811e765503..a194b6d9e8f16f4de93ea7898eed32d3c35af2d6 100644 --- a/wechat/page/4/index.html +++ b/wechat/page/4/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 可视化阶段视图的改进 +

    + + + + +
    +
    + + + + +
    + +
    + +

    持续测试的那些事

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 持续交付落地实践工作坊 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/5/index.html b/wechat/page/5/index.html index c36fa247d1d01acbf57b9904a9b1c2e35a8dc2b6..16027cf1fca06b3d15d295710468fce566ee6807 100644 --- a/wechat/page/5/index.html +++ b/wechat/page/5/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 持续交付落地实践工作坊 +

    + + + + +
    +
    + + + + +
    + +
    + +

    Jenkins 每周版更新

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 还在苦恼不会写 Jenkins 流水线?来场工作坊! -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/6/index.html b/wechat/page/6/index.html index fc1fba67721921b49cc16dac78427a4f342efdbe..4bdafa66563951f925d6d52c3f3a86a966feaa18 100644 --- a/wechat/page/6/index.html +++ b/wechat/page/6/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 还在苦恼不会写 Jenkins 流水线?来场工作坊! +

    + + + + +
    +
    + + + + +
    + +
    + +

    在线分享 - 作为一名开源贡献者是如何使用 GitHub 的?

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 转载规范及声明 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/7/index.html b/wechat/page/7/index.html index 2386a1b8a76890628dd934d4d632453287053d4d..cfe0fe7dc99781d6e74c21ae1cfe52b7278b6601 100644 --- a/wechat/page/7/index.html +++ b/wechat/page/7/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + 转载规范及声明 +

    + + + + +
    +
    + + + + +
    + +
    + +

    从 Jenkins 到 Jenkins X

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - Jenkins 插件开发之旅:两天内从 idea 到发布(上篇) -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/8/index.html b/wechat/page/8/index.html index 0153810894490f7703f0be649806fef749eaeff4..522fb3a4052bd4a18e3ccb869330d8b1d8086a80 100644 --- a/wechat/page/8/index.html +++ b/wechat/page/8/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + Jenkins 插件开发之旅:两天内从 idea 到发布(上篇) +

    + + + + +
    +
    + + + + +
    + +
    + +

    应该使用什么 CI/CD 工具?

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - AIOps:DevOps 的未来 -

    - - - - -
    -
    - - -
    diff --git a/wechat/page/9/index.html b/wechat/page/9/index.html index db5bbb0a36a76b5dc4ec6dc7e4fc3c617ed8fa36..567ecd1ed5be56d2206c45f11646286357232f68 100644 --- a/wechat/page/9/index.html +++ b/wechat/page/9/index.html @@ -37,7 +37,7 @@ - + @@ -209,6 +209,33 @@ var trackOutboundLink = function(id, url) {
    +

    + AIOps:DevOps 的未来 +

    + + + + +
    +
    + + + + +
    + +
    + +

    使用 Zabbix 监控 Jenkins

    @@ -446,33 +473,6 @@ var trackOutboundLink = function(id, url) { - -
    - -
    - - -

    - 为 Continuous Delivery Foundation 的成立感到兴奋 -

    - - - - -
    -
    - - -