jenkins部署应用(docker版本)
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,一、安装1.docker镜像运行jenkins安装详细步骤参考官方文档https://jenkins.io/zh/doc/book/installing/docker run \ -u root \
千家信息网最后更新 2024年12月12日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安全错误
数据库的锁怎样保障安全
服务器20m带宽
网络安全威胁的预防措施
材料力学与计算机软件开发
惠普服务器生产厂家
智能辅助红包服务器
7寸照片打印机服务器
新一代海量数据库
出租服务器客户违法了
法律咨询服务软件开发项目
黄瓜数据库
关系数据库有几种表
固网usb打印服务器
怎么访问别人mysql数据库
淘宝平台服务器是哪家
无法连接暴雪服务器
网络安全培训公司简介
共享网络安全创造美好校园
自然科学基金委网络安全
国家网络技术考试
国外服务器上网
海南软件开发方案
谈谈你对加强网络安全管理理解
检索数据库user表的所有记录
信息网络安全社会研究所
美国服务器一年多少
数据库查询如何撤销
戴尔服务器8gb双硬盘
杨浦区营销软件开发业务流程
艾邦软件开发
bmc服务器管理密码