jenkins - 持续集成的使用 ci
访问量: 12
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 )