一、概述
Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎。Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
二、安装
环境说明
操作系统:centos 7.6
docker版本:19.03.12
ip地址:192.168.31.145
配置:2核4g
下载镜像
docker pull jenkins/jenkins:lts
注意:这个是长期技术支持版
封装镜像
由于默认没有maven,因此我需要封装一下。
新建目录/opt/myjenkins/,目录结构如下:
./ ├── dockerfile └── settings.xml
dockerfile
FROM jenkins/jenkins:lts ADD settings.xml / USER root RUN apt-get update && \ apt-get install -y maven && \ apt-get clean all && \ mv /settings.xml /etc/maven/settings.xml
说明:
USER root 表示以root用户运行,这样jenkins执行某些任务时,不会出现没有权限的情况。
settings.xml
这个是maven配置文件,去掉了注释部分。增加阿里云maven仓库
nexus-aliyun central Nexus aliyun http://maven.aliyun.com/nexus/content/groups/public
注意:配置阿里云maven仓库,可以很快速的下载一些jar包。
构建并运行
docker build -t myjenkins:1 . mkdir -p /data/jenkins/data /data/jenkins/maven docker run -d \ --restart=always \ --name=jenkins \ -u root \ -p 8080:8080 -p 50000:50000 \ -v /data/jenkins/data:/var/jenkins_home \ -v /data/jenkins/maven/m2:/root/.m2 \ myjenkins:1
说明:
/data/jenkins/data 用来保存jenkins数据目录
/data/jenkins/maven/m2 用来保存构建maven项目时,从aliyun下载的一些jar包。
查看日志
docker logs -f jenkins
如果出现
Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation:
表示启动完成了
三、nginx发布jenkins
安装nginx
yum install -y nginx mkdir -p /data/log/nginx nginx
配置文件
vi /etc/nginx/conf.d/jenkins.aliyun.com.conf
内容如下:
server { listen 80; server_name jenkins.aliyun.com; charset utf-8; access_log /data/log/nginx/jenkins.aliyun.com.access.log main; error_log /data/log/nginx/jenkins.aliyun.com.error.log; client_max_body_size 3072m; location / { index index.html index.htm; proxy_pass http://192.168.31.145:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
重新加载配置
nginx -s reload
访问页面
http://jenkins.aliyun.com
注意:如果我们不配置镜像加速,那么很有可能会出现: Jenkins 一直卡在 启动界面 Please wait while Jenkins is getting ready to work
安装推荐插件
创建用户
实例配置
注意:这里一定要配置为域名。
登录之后,效果如下:
本文参考链接:
https://blog.csdn.net/qiuyeyijian/article/details/104507440