jenkins部署应用(docker版本)
发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,一、安装1.docker镜像运行jenkins安装详细步骤参考官方文档https://jenkins.io/zh/doc/book/installing/docker run \ -u root \
千家信息网最后更新 2024年11月15日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安全错误
数据库的锁怎样保障安全
云南网络安全培训班参培人员名单
自动化从事软件开发
sql通过日志还原数据库
cs1.6服务器比赛参数
丛台区网络安全
汕头市华辰网络技术有限公司
网络安全和游戏后端开发
网络技术负责人岗位职责
服务器本地安全策略关闭端口
无锡软件开发大概要多少钱
房地产数据库开发
陕西电商系统软件开发
双轨软件开发公司
网络安全专业博士全国有多少人
全面关注网络安全宣传
在线教育数据库表设计
在家装一个服务器
数据库通用参数
加强网络安全的试题
黑龙江电信dns服务器云服务器
软件开发补偿标准
苹果有没有连接云服务器的软件
游戏服务器的架构演进
什么属于大二层网络技术
森林资源数据库设计
钢琴ai陪练软件开发
欢乐枪战无法连接服务器
把网页和数据库连接
万方数据库如何看全文
桃花源记手游新服务器