容器 & 服务:Jenkins本地及docker安装部署

简介: jenkins是常用的开源持续继承工具,现在所在的工作场景,也是使用jenkins进行基于github代码的拉取、打包、构建、部署的一系列流程,并结合了容器和函数计算实现金丝雀部署。本文先从基础的jenkins环境搭建开始。

系列文章:

容器 & 服务:开篇,压力与资源

前言

   jenkins是常用的开源持续继承工具,现在所在的工作场景,也是使用jenkins进行基于github代码的拉取、打包、构建、部署的一系列流程,并结合了容器和函数计算实现金丝雀部署。本文先从基础的jenkins环境搭建开始。

一 jenkins本地安装部署

jenkins官网的下载速度太慢,可使用下面镜像:

清华镜像

jenkins ci

官网文档,jenkins入门,下载jenkins.war之后,使用下面命令启动和访问:

1.下载 Jenkins.

  • 2.打开终端进入到下载目录.
  • 3.运行命令 java -jar jenkins.war --httpPort=8080.
  • 4.打开浏览器进入链接 http://localhost:8080.
  • 5.按照说明完成安装.

按照说明,java -jar jenkins.war --httpPort=8080 后控制台输出如下:

-rw-r--r--@ 1 qingclass  staff  66175731  2  7 16:28 jenkins.war
bogon:jenkins qingclass$ 
bogon:jenkins qingclass$ 
bogon:jenkins qingclass$ java -jar jenkins.war --httpPort=8080
Running from: /Users/qingclass/develop/mine/projects/container/jenkins/jenkins.war
webroot: $user.home/.jenkins
2021-02-07 08:28:58.638+0000 [id=1] INFO  org.eclipse.jetty.util.log.Log#initialized: Logging initialized @450ms to org.eclipse.jetty.util.log.JavaUtilLog
2021-02-07 08:28:58.751+0000 [id=1] INFO  winstone.Logger#logInternal: Beginning extraction from war file
2021-02-07 08:29:00.126+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2021-02-07 08:29:00.180+0000 [id=1] INFO  org.eclipse.jetty.server.Server#doStart: jetty-9.4.25.v20191220; built: 2019-12-20T17:00:00.294Z; git: a9729c7e7f33a459d2616a8f9e9ba8a90f432e95; jvm 1.8.0_212-b10
2021-02-07 08:29:00.447+0000 [id=1] INFO  o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2021-02-07 08:29:00.486+0000 [id=1] INFO  o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2021-02-07 08:29:00.486+0000 [id=1] INFO  o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2021-02-07 08:29:00.491+0000 [id=1] INFO  o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms
2021-02-07 08:29:00.768+0000 [id=1] INFO  hudson.WebAppMain#contextInitialized: Jenkins home directory: /Users/qingclass/.jenkins found at: $user.home/.jenkins
2021-02-07 08:29:02.331+0000 [id=1] INFO  o.e.j.s.handler.ContextHandler#doStart: Started w.@1cf2fed4{Jenkins v2.220,/,file:///Users/qingclass/.jenkins/war/,AVAILABLE}{/Users/qingclass/.jenkins/war}
2021-02-07 08:29:02.363+0000 [id=1] INFO  o.e.j.server.AbstractConnector#doStart: Started ServerConnector@1a4927d6{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2021-02-07 08:29:02.363+0000 [id=1] INFO  org.eclipse.jetty.server.Server#doStart: Started @4176ms
2021-02-07 08:29:02.364+0000 [id=23]  INFO  winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2021-02-07 08:29:03.159+0000 [id=30]  INFO  jenkins.InitReactorRunner$1#onAttained: Started initialization
2021-02-07 08:29:03.174+0000 [id=50]  INFO  jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2021-02-07 08:29:04.066+0000 [id=37]  INFO  jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2021-02-07 08:29:04.071+0000 [id=37]  INFO  jenkins.InitReactorRunner$1#onAttained: Started all plugins
2021-02-07 08:29:04.076+0000 [id=45]  INFO  jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2021-02-07 08:29:04.637+0000 [id=50]  INFO  jenkins.InitReactorRunner$1#onAttained: System config loaded
2021-02-07 08:29:04.637+0000 [id=40]  INFO  jenkins.InitReactorRunner$1#onAttained: System config adapted
2021-02-07 08:29:04.637+0000 [id=48]  INFO  jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2021-02-07 08:29:04.638+0000 [id=48]  INFO  jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2021-02-07 08:29:04.647+0000 [id=64]  INFO  hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Download metadata
2021-02-07 08:29:04.656+0000 [id=64]  INFO  hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2021-02-07 08:29:05.281+0000 [id=31]  INFO  o.s.c.s.AbstractApplicationContext#prepareRefresh: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@b824f1b: display name [Root WebApplicationContext]; startup date [Sun Feb 07 16:29:05 CST 2021]; root of context hierarchy
2021-02-07 08:29:05.281+0000 [id=31]  INFO  o.s.c.s.AbstractApplicationContext#obtainFreshBeanFactory: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@b824f1b]: org.springframework.beans.factory.support.DefaultListableBeanFactory@5dd6b4ad
2021-02-07 08:29:05.290+0000 [id=31]  INFO  o.s.b.f.s.DefaultListableBeanFactory#preInstantiateSingletons: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5dd6b4ad: defining beans [authenticationManager]; root of factory hierarchy
2021-02-07 08:29:05.427+0000 [id=31]  INFO  o.s.c.s.AbstractApplicationContext#prepareRefresh: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@11ce086b: display name [Root WebApplicationContext]; startup date [Sun Feb 07 16:29:05 CST 2021]; root of context hierarchy
2021-02-07 08:29:05.427+0000 [id=31]  INFO  o.s.c.s.AbstractApplicationContext#obtainFreshBeanFactory: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@11ce086b]: org.springframework.beans.factory.support.DefaultListableBeanFactory@79f651d3
2021-02-07 08:29:05.427+0000 [id=31]  INFO  o.s.b.f.s.DefaultListableBeanFactory#preInstantiateSingletons: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@79f651d3: defining beans [filter,legacy]; root of factory hierarchy
2021-02-07 08:29:05.561+0000 [id=31]  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:
1072ca47a779473dbad450aee6d6946e
This may also be found at: /Users/qingclass/.jenkins/secrets/initialAdminPassword

浏览器访问,注意,页面会提示等待初始化,结束后会自动跳转到首页,这个过程会花1-2分钟时间,并非出错。

image.png

待弹出上面这个输入秘钥页面时,输入上面的1072ca47a779473dbad450aee6d6946e 完成安装,进入后续操作即可。

完成后,进入熟悉的页面:

image.png

二 docker下的安装部署

注,这里不再介绍docker的安装方式,默认已完成本地的docker部署。

笔者使用的docker版本如下:

flamingskys:logs $ docker --version
Docker version 19.03.5, build 633a0ea

在docker中下载并安装jenkins,可参照说明: docker中安装jenkins,使用镜像: jenkinsci/blueocean,这是来自 Docker Hub repository 的jenkins Docker镜像。

安装步骤:

1、使用下面命令直接运行:

docker run -p 8080:8080 jenkinsci/blueocean

2、run成功后,当看到下面输出时,代表已经启动完成。浏览器中通过http://localhost:8080端口访问,与本地部署相同:密码: d71cb009aa2e4343896110ccbc86778d

相关文章
|
3天前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
142 91
|
4天前
|
存储 NoSQL Redis
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
224 93
|
19天前
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
11天前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
71 44
|
4天前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
36 23
|
4天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
90 15
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
157 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
1月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
58 23
|
23天前
|
SQL Java Maven
docker部署apollo
docker部署apollo步骤