Back

jenkins - 持续集成的使用 ci

发布时间: 2023-06-05 00:29:00

refer to:
https://www.jenkins.io/

直接下载docker吧:https://hub.docker.com/r/jenkins/jenkins

docker pull jenkins/jenkins

使用方法:
https://github.com/jenkinsci/docker/blob/master/README.md

运行:

docker run -p 8888:8080 -p 50000:50000 -v /d/workspace/jenkins_folder:/var/jenkins_home jenkins/jenkins:latest

可以看到,会生成用户名和密码

jenkins docker打开的是8080端口。

PS D:\workspace> docker run -p 8888:8080 -p 50000:50000 -v /d/workspace/jenkins_folder:/var/jenkins_home jenkins/jenkins:latest
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2023-06-05 00:34:57.858+0000 [id=1]     INFO    org.eclipse.jetty.util.log.Log#initialized: Logging initialized @205ms to org.eclipse.jetty.util.log.JavaUtilLog
2023-06-05 00:34:57.893+0000 [id=1]     INFO    winstone.Logger#logInternal: Beginning extraction from war file
2023-06-05 00:35:05.974+0000 [id=1]     WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2023-06-05 00:35:05.997+0000 [id=1]     INFO    org.eclipse.jetty.server.Server#doStart: jetty-9.4.43.v20210629; built: 2021-06-30T11:07:22.254Z; git: 526006ecfa3af7f1a27ef3a288e2bef7ea9dd7e8; jvm 11.0.13+8
2023-06-05 00:35:08.362+0000 [id=1]     INFO    o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2023-06-05 00:35:08.423+0000 [id=1]     INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2023-06-05 00:35:08.423+0000 [id=1]     INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2023-06-05 00:35:08.423+0000 [id=1]     INFO    o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms
2023-06-05 00:35:09.239+0000 [id=1]     INFO    hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2023-06-05 00:35:09.489+0000 [id=1]     INFO    o.e.j.s.handler.ContextHandler#doStart: Started w.@5e8cda75{Jenkins v2.328,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2023-06-05 00:35:09.504+0000 [id=1]     INFO    o.e.j.server.AbstractConnector#doStart: Started ServerConnector@45e37a7e{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2023-06-05 00:35:09.505+0000 [id=1]     INFO    org.eclipse.jetty.server.Server#doStart: Started @11852ms
2023-06-05 00:35:09.506+0000 [id=25]    INFO    winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2023-06-05 00:35:10.070+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
2023-06-05 00:35:10.134+0000 [id=52]    INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2023-06-05 00:35:11.751+0000 [id=43]    INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2023-06-05 00:35:11.762+0000 [id=40]    INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
2023-06-05 00:35:11.772+0000 [id=53]    INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2023-06-05 00:35:12.209+0000 [id=35]    INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
2023-06-05 00:35:12.209+0000 [id=34]    INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
2023-06-05 00:35:12.210+0000 [id=50]    INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2023-06-05 00:35:12.211+0000 [id=44]    INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2023-06-05 00:35:12.220+0000 [id=66]    INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$1: Started Download metadata
2023-06-05 00:35:12.231+0000 [id=66]    INFO    hudson.util.Retrier#start: Attempt #1 to do the action check updates server
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/var/jenkins_home/war/WEB-INF/lib/groovy-all-2.4.21.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2023-06-05 00:35:12.773+0000 [id=44]    INFO    jenkins.install.SetupWizard#init:

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

e6ff4bdd374f4edab33eb31a9603bc65

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2023-06-05 00:35:22.367+0000 [id=44]    INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
2023-06-05 00:35:22.392+0000 [id=24]    INFO    hudson.WebAppMain$3#run: Jenkins is fully up and running
2023-06-05 00:35:23.923+0000 [id=66]    INFO    h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
2023-06-05 00:35:23.924+0000 [id=66]    INFO    hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1
2023-06-05 00:35:23.931+0000 [id=66]    INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$1: Finished Download metadata. 11,710 ms

所以,我们访问该jenkins服务:

选择插件:

github肯定是要选择的:

并没有找到sonarcube ...

不管了,直接安装

这就是没有设置http_proxy, https_proxy的后果:

不管失败的插件,继续

设置访问jenkins的域名:

我还是换成IP吧:

访问:

可以看到首页了:

在github上随意找个项目:

在jenkins上创建项目:

由于刚才的plugin没有安装完全,所以该项目不可用。

进入到配置中

可以看到版本是 2.328

docker pull jenkins/jenkins:2.401.1-lts-jdk11

下载docker, 然后重新启动

docker run --env-file ./ -p 8888:8080 -p 50000:50000 -v /d/workspace/jenkins_folder:/var/jenkins_home jenkins/jenkins:2.401.1-lts-jdk11

登录 -> dashboard -> system 配置 -> 插件:

从jenkins docker console也可以看到该输出:

java.io.IOException: Failed to load: GitHub Integration Plugin (github-pullrequest 0.5.0)
 - Update required: Jenkins Git client plugin (git-client 3.12.4) to be updated to 3.13.1 or higher
 - Update required: SSH Credentials Plugin (ssh-credentials 277.280.v1e86b_7d0056b_) to be updated to 305.v8f4381501156 or higher
 - Update required: Git plugin (git 4.12.1) to be updated to 4.14.3 or higher
 - Update required: GitHub plugin (github 1.34.3.1) to be updated to 1.34.5 or higher
        at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:994)
        at hudson.PluginManager.dynamicLoad(PluginManager.java:948)
Caused: java.io.IOException: Failed to install github-pullrequest plugin
        at hudson.PluginManager.dynamicLoad(PluginManager.java:962)
        at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2200)
Caused: java.io.IOException: Failed to dynamically deploy this plugin
        at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2204)
        at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1850)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:121)
        at java.base/java.lang.Thread.run(Thread.java:829)

可惜docker无法重启。

docker console中可以看到了:

不用怕docker重启,内容都在:

重启后,就可以看到对应的配置了:

可以看到,立刻被build

添加一个简单的任务。只要保证每次commit/push, 该任务都能正常被执行即可。

(对于基于windows的服务器,使用windows cmd, 对于基于linux的jenkins服务器,使用 shell )

Back