docker安装Jenkins及配置发布

注意:本机ip 地址为192.168.1.103

docker 命令

docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkins/jenkins:lts

访问地址:http://192.168.1.103:8080/login?from=%2F

image.png

首次登录需要密码,查看启动日记就可以了,密码在最下面

[root@localhost /]# docker logs b83c93f390bd
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2021-03-20 03:11:44.849+0000 [id=1] INFO    org.eclipse.jetty.util.log.Log#initialized: Logging initialized @200ms to org.eclipse.jetty.util.log.JavaUtilLog
2021-03-20 03:11:44.922+0000 [id=1] INFO    winstone.Logger#logInternal: Beginning extraction from war file
2021-03-20 03:11:46.039+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2021-03-20 03:11:46.093+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: jetty-9.4.33.v20201020; built: 2020-10-20T23:39:24.803Z; git: 1be68755656cef678b79a2ef1c2ebbca99e25420; jvm 1.8.0_242-b08
2021-03-20 03:11:46.402+0000 [id=1] INFO    o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2021-03-20 03:11:46.433+0000 [id=1] INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2021-03-20 03:11:46.433+0000 [id=1] INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2021-03-20 03:11:46.434+0000 [id=1] INFO    o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 660000ms
2021-03-20 03:11:46.776+0000 [id=1] INFO    hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2021-03-20 03:11:46.850+0000 [id=1] INFO    o.e.j.s.handler.ContextHandler#doStart: Started w.@1b58ff9e{Jenkins v2.263.2,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2021-03-20 03:11:46.866+0000 [id=1] INFO    o.e.j.server.AbstractConnector#doStart: Started ServerConnector@126253fd{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2021-03-20 03:11:46.866+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: Started @2217ms
2021-03-20 03:11:46.867+0000 [id=23]    INFO    winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2021-03-20 03:11:47.893+0000 [id=30]    INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
2021-03-20 03:11:47.906+0000 [id=33]    INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2021-03-20 03:11:48.936+0000 [id=33]    INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2021-03-20 03:11:48.939+0000 [id=37]    INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
2021-03-20 03:11:48.944+0000 [id=40]    INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2021-03-20 03:11:49.564+0000 [id=34]    INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
2021-03-20 03:11:49.564+0000 [id=34]    INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
2021-03-20 03:11:49.576+0000 [id=41]    INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2021-03-20 03:11:49.585+0000 [id=37]    INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2021-03-20 03:11:49.596+0000 [id=56]    INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Download metadata
2021-03-20 03:11:49.610+0000 [id=56]    INFO    hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2021-03-20 03:11:50.289+0000 [id=34]    INFO    o.s.c.s.AbstractApplicationContext#prepareRefresh: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@48e7c5a6: display name [Root WebApplicationContext]; startup date [Sat Mar 20 03:11:50 UTC 2021]; root of context hierarchy
2021-03-20 03:11:50.289+0000 [id=34]    INFO    o.s.c.s.AbstractApplicationContext#obtainFreshBeanFactory: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@48e7c5a6]: org.springframework.beans.factory.support.DefaultListableBeanFactory@b156311
2021-03-20 03:11:50.297+0000 [id=34]    INFO    o.s.b.f.s.DefaultListableBeanFactory#preInstantiateSingletons: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@b156311: defining beans [authenticationManager]; root of factory hierarchy
2021-03-20 03:11:50.411+0000 [id=34]    INFO    o.s.c.s.AbstractApplicationContext#prepareRefresh: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@76cb2d70: display name [Root WebApplicationContext]; startup date [Sat Mar 20 03:11:50 UTC 2021]; root of context hierarchy
2021-03-20 03:11:50.411+0000 [id=34]    INFO    o.s.c.s.AbstractApplicationContext#obtainFreshBeanFactory: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@76cb2d70]: org.springframework.beans.factory.support.DefaultListableBeanFactory@72c3778b
2021-03-20 03:11:50.412+0000 [id=34]    INFO    o.s.b.f.s.DefaultListableBeanFactory#preInstantiateSingletons: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@72c3778b: defining beans [filter,legacy]; root of factory hierarchy
2021-03-20 03:11:50.620+0000 [id=34]    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:

f3701025a2d54ef981978b4c7f6e19b4  #密码

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

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

2 选择插件来安装

image.png

保持默认插件不动并务必勾选 Publish Over SSH 插件


image.png

等待安装完成,存在可能存在的插件安装不成功,登录进去后看哪些没有安装的再重新安装过


image.png
image.png

image.png

image.png

image.png

到此我们Jenkins 安装已完成

3.安装必备插件

Deploy to container:自动化部署插件件
Delivery pipeline:用于查看构建状态和时间的视图插件
Multijob:多项目构建插件
NodeJS:构建前端应用


image.png

image.png

image.png

注意:这里因为要安装多个插件,可以对每个插件都进行查询勾选上之后再统一安装,勾选之后就会选上不会说查询其他插件之后会不见

image.png

image.png

image.png

image.png

点击直接安装即可


image.png

运气好就是一次就安装成功


然后重启Jenkins ,直接使用docker 命令重启就好了

[root@localhost /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS              PORTS                                              NAMES
b83c93f390bd   jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   7 minutes ago   Up About a minute   0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   clever_nightingale
[root@localhost /]# docker restart b83c93f390bd
b83c93f390bd
[root@localhost /]# 

4.全局配置

我们要配置jdk,maven, nodejs这三个环境


image.png

image.png

image.png

image.png

进入容器中,并创建envs

[root@localhost jenkins_data]# docker exec -it b83c93f390bd /bin/bash
jenkins@b83c93f390bd:/$ cd /var/jenkins_home/
jenkins@b83c93f390bd:~$ ls
config.xml                  jenkins.install.UpgradeWizard.state     plugins           userContent
copy_reference_file.log             jenkins.model.JenkinsLocationConfiguration.xml  queue.xml.bak         users
hudson.model.UpdateCenter.xml           jenkins.telemetry.Correlator.xml        secret.key        war
hudson.plugins.deploy.DeployPublisher.Migrator  jobs                        secret.key.not-so-secret  workflow-libs
hudson.plugins.git.GitTool.xml          logs                        secrets
identity.key.enc                nodeMonitors.xml                tini_pub.gpg
jenkins.install.InstallUtil.lastExecVersion nodes                       updates
jenkins@b83c93f390bd:~$ mkdir envs

退出容器,进入当前服务器路路径[root@localhost /]# cd /var/lib/docker/volumes/jenkins_data/_data

[root@localhost /]# cd /var/lib/docker/volumes/jenkins_data/_data
[root@localhost _data]# ls
config.xml                                      jenkins.install.InstallUtil.lastExecVersion     nodes                     updates
copy_reference_file.log                         jenkins.install.UpgradeWizard.state             plugins                   userContent
envs     #为映射容器中的文件                                       jenkins.model.JenkinsLocationConfiguration.xml  queue.xml.bak             users
hudson.model.UpdateCenter.xml                   jenkins.telemetry.Correlator.xml                secret.key                war
hudson.plugins.deploy.DeployPublisher.Migrator  jobs                                            secret.key.not-so-secret  workflow-libs
hudson.plugins.git.GitTool.xml                  logs                                            secrets
identity.key.enc                                nodeMonitors.xml                                tini_pub.gpg
[root@localhost _data]# 

测试是否映射成功,我们再envs 下创建一个文件夹再进入容器中查看

[root@localhost envs]# vi test.txt
[root@localhost envs]# ls
test.txt

容器中,说明映射成功

jenkins@b83c93f390bd:/$ cd var/jenkins_home/
jenkins@b83c93f390bd:~$ ls
config.xml                     hudson.plugins.deploy.DeployPublisher.Migrator  jenkins.install.UpgradeWizard.state             logs              queue.xml.bak             tini_pub.gpg  war
copy_reference_file.log        hudson.plugins.git.GitTool.xml                  jenkins.model.JenkinsLocationConfiguration.xml  nodeMonitors.xml  secret.key                updates       workflow-libs
envs                           identity.key.enc                                jenkins.telemetry.Correlator.xml                nodes             secret.key.not-so-secret  userContent
hudson.model.UpdateCenter.xml  jenkins.install.InstallUtil.lastExecVersion     jobs                                            plugins           secrets                   users
jenkins@b83c93f390bd:~$ cd envs/
jenkins@b83c93f390bd:~/envs$ ls
test.txt
jenkins@b83c93f390bd:~/envs$

上传文件到映射文件中


image.png

容器中


image.png

由于我们当前的用户为root 用户


image.png

需要修改为Jenkins
修改服务器下文件角色权限

创建用户

[root@localhost ~]# adduser tone
[root@localhost ~]# passwd tone
更改用户 tone 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# 

密码过于简单直接就一直输入12345678 就好了
重新切换文件权限,已经更改为tone

[root@localhost envs]# chown tone:tone *.*
[root@localhost envs]# ll
总用量 215516
-rw-r--r--. 1 tone tone   9506321 3月  20 12:33 apache-maven-3.6.3-bin.tar.gz
-rw-r--r--. 1 tone tone 189784266 3月  20 12:34 jdk-8u152-linux-x64.tar.gz
-rw-r--r--. 1 tone tone  21385948 3月  20 12:34 node-v14.16.0-linux-x64.tar.xz
-rw-r--r--. 1 tone tone         5 3月  20 12:31 test.txt
[root@localhost envs]# 

再看回容器中文件的权限,已经进行了更改


image.png

解压文件

# jdk解压
tar -zxvf jdk-8u152-linux-x64.tar.gz
# maven 解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz 
# node.js 解压
xz -d node-v14.16.0-linux-x64.tar.xz
# xz 命令把 tar.xz  解压为了node-v14.16.0-linux-x64.tar
tar -xvf node-v14.16.0-linux-x64.tar

最终解压后的文件


image.png

5. 回到Jenkins 进行配置

系统管理 ==》全局工具配置

image.png
image.png
image.png

保存即可

6.配置maven setting.xml 文件,主要配置仓库路径和中央仓库下载地址

image.png

image.png
<localRepository>/var/jenkins_home/envs/apache-maven-3.6.3/repo</localRepository>

    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>

再容器中 /var/jenkins_home 下 创建 .npmrc
配置 加速地址

registry=https://registry.npm.taobao.org
image.png

7 .配置远程服务器地址

open SSH


image.png
image.png

新开一台服务器
IP 192.168.1.102
并创建文件夹 mydata


image.png

image.png

8 新建项目

集群多项目需创建文件夹来进行管理

image.png

image.png

创建maven 组视图


image.png

image.png

image.png

开始创建任务


image.png

配置gitee 项目地址 及账户名密码


image.png

image.png

image.png

image.png

image.png

image.png

image.png

注意:构建过程出现权限出错,主要是maven 中的文件还是root 更改过来就可以执行了

image.png

更改后可以看到可以执行了就很容易构建成功了


image.png

9 发布到目标服务器

本地执行成功后我们需要发布到目标服务器上去


image.png

重新配置工程,添加构建步骤

image.png

image.png

image.png
image.png

再看一下102 服务器的文件夹

image.png

image.png

传输成功后之后的执行部署之类的就非常简单了,就是基本的shell 命令了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349