jenkins部署应用(docker版本)
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,一、安装1.docker镜像运行jenkins安装详细步骤参考官方文档https://jenkins.io/zh/doc/book/installing/docker run \ -u root \
千家信息网最后更新 2025年01月24日jenkins部署应用(docker版本)
一、安装
1.docker镜像运行jenkins
- 安装详细步骤参考官方文档https://jenkins.io/zh/doc/book/installing/
docker run \ -u root \ --rm \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean
- docker提示没有开启转发解决方法
vim /usr/lib/sysctl.d/00-system.confnet.ipv4.ip_forward=1 #新添加
重启network
- 浏览器访问8080端口
如果界面提示Jenkins正在启动,请稍后...或者提示
Please wait while Jenkins is getting ready to work...
解决方法:
需要你进入jenkins的工作目录,打开 hudson.model.UpdateCenter.xml 把 http://updates.jenkins-ci.org/update-center.json 改成 http://mirror.xmission.com/jenkins/updates/update-center.json
- Jenkins对离线和插件安装慢解决方法
cd /var/jenkins_home/updates/ sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && \sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
- 时间不一致问题解决办法
Docker 容器时间跟主机时间保持同步
docker cp /usr/share/zoneinfo/Asia/Shanghai jenkins02:/etc/localtime
Jenkins系统上的时间不正确问题
很简单,点击系统管理,选择执行脚本命令:
打开 【系统管理】->【脚本命令行】运行下面的命令
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
2.docker运行gitlab
- 先创建需要挂载的三个目录:配置 (etc) 、 日志 (log) 、数据 (data)
mkdir -p /mnt/gitlab/etcmkdir -p /mnt/gitlab/logmkdir -p /mnt/gitlab/data
- 运行gitlab
docker container run -it \-p 8090:80 -p 8443:443 -p 8022:22 \--restart unless-stopped \-v /mnt/gitlab/etc:/etc/gitlab \-v /mnt/gitlab/log:/var/log/gitlab \ -v /mnt/gitlab/data:/var/opt/gitlab \--name gitlab gitlab/gitlab-ce:latest
- 进入容器 修改配置
把external_url改成部署机器的域名或者IP地址
vim /etc/gitlab/gitlab.rbexternal_url 'http://192.168.100.107'gitlab_rails['gitlab_ssh_host'] = '192.168.100.107'gitlab_rails['gitlab_shell_ssh_port'] = 8022gitlab_rails['gitlab_shell_git_timeout'] = 800
重启容器
docker restart gitlab
修改克隆时的端口,默认是80,但我们映射成了8090,因此需要修改
每次重启容器 都需要执行者一步
进入容器执行
root@6129313605ed:/# cd /var/opt/gitlab/gitlab-rails/etc/vim gitlab.yml gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: 192.168.100.107 port: 8090 #此处修改为8090 https: falsegitlab-ctl restart #重启
- 常用的几个Gitlab命令
# 重新应用gitlab的配置gitlab-ctl reconfigure# 重启gitlab服务gitlab-ctl restart# 查看gitlab运行状态gitlab-ctl status#停止gitlab服务gitlab-ctl stop# 查看gitlab运行日志gitlab-ctl tail# 停止相关数据连接服务gitlab-ctl stop unicorngitlab-ctl stop sideki
二、jenkins应用
1.jenkins权限管理
- 安装插件:
- 启用插件
此时再点击系统管理,会多出一项:Manage and Assign Roles
- 创建一个用户:deva
点击
- 使用Manage and Assign Roles 管理分配用户
管理用户
分配用户
这样 deva用户 就只能看到dev- 的job了,并且 只有执行job的权限。
2.jenkins执行脚本
- 在节点上写一个测试脚本,并给脚本赋予执行权限
[root@vm2 ~]# cat test.sh #!/bin/bashecho lingxdecho $1
- 创建自由风格job
参数化构建
点击构建 选择参数
3.pipeline 初探
- 创建job
- 配置
脚本内容
node { stage('Code PUll'){ echo "Code PUll" git credentialsId: 'ee5eb9ea-39a9-48c3-9b02-0b6985ed092a', url: 'http://192.168.100.117:8090/root/bk.git' } stage('Code Build'){ echo "code build" sh '/root/mvn/apache-maven-3.6.3/bin/mvn clean compile' } stage('Unit Test'){ echo "unit test" } stage('是否部署'){ input '部署测试环境' } stage('Deploy Test ENV'){ sh '/root/test.sh 123' }}
4.Jenkins和gitlab集成自动触发
- jenkins插件管理安装GitLab Plugin插件
- 去gitlab生成token
- 系统管理-->系统配置 配置gitlab
- 创建pipeline 类型job
- 登录gitlab配置项目集成,添加webhook
先点击进入你要配置的项目,找到设置,点击集成
上面要填的url和token,看上一步骤
如果创建webhook失败,提示不可以本地网络认证,需要在设置里面设置下。
这样 就实现了dev分支只要有代码提交,就会自动触发jenkins的job
管理
配置
系统
脚本
运行
容器
插件
用户
命令
时间
提示
方法
权限
服务
应用
参数
数据
日志
步骤
目录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
崇明区重型网络技术销售价格
交换机软件开发
计算机三级数据库资料百度网盘
怎么夸软件开发技术
软件开发薪资级别
安全设置服务器
北京外观检测软件开发
真假鉴定网络安全
重庆软件开发创业合伙人
多举措筑牢网络安全
ftp服务器安全配置过程
云主机没有数据库权限
棋牌游戏软件开发厂家
sql输入命令建立数据库
学校狠抓网络安全
王者服务器能卸载吗
vf数据库操作
数据库安装包怎么制作
微信发直销软件开发违法吗
dell 服务器 管理口
上海傲玩网络技术有限公司
网络安全技术与实践作业
SQL数据库下载电影
软件开发公司业务流程图
果洛软件开发技巧
国家网络安全周宣传册
美国软件开发好找工作吗
学校狠抓网络安全
昆山 软件开发
无线网络安全设置是什么