jenkins+docker+gogs,初试,一些基础操作,流程,实现git push 自动打包文件上传服务器,重启docker。
docker安装Jenkins
使用Jenkins的镜像 自己只需要改下端口 也可以不改 jenkins-zh(中文)
docker run -d --restart=unless-stopped --name jenkins_954L -u root \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/local/dockerinfo/jenkins:/var/jenkins_home \
-p 60000:60000 -p 50000:50000 jenkinszh/jenkins-zh
公司用了iKuai 所以需要设置下端口映射。。。。。。
直接访问 http://ip:端口/ 就显示下面这个了
docker exec -it 容器ID /bin/bash 进如容器复制代码
cat /var/jenkins_home/secrets/initialAdminPassword 查看密码复制代码
输入获取的密码 下一步 新手入门等待安装插件,选择推荐就好 等待安装完成
创建一个管理员用户 进入主界面
插件管理
可能需要安装一些插件
系统管理》插件管理》系统管理》插件管理》系统管理》插件管理》
这里安装选择直接安装,特别说一下插件安装完要重启才生效
全局工具配置
系统管理》全局工具配置》系统管理》全局工具配置》系统管理》全局工具配置》
看有些博客都是标配JDK、node、Maven什么的,上来就配置这些,这个不是必须配置的,按需配置按需配置按需配置,需要什么配置什么,像vue、react打包就需要先在插件管理安装插件管理安装插件管理安装node插件在全局工具配置全局工具配置全局工具配置配置下node。
GOgs配置
下面正式开始配置GOgs自动化
- 首先去插件管理安装Gogs,记得Jenkins重启要选上,自动重启生效。
- 首页左侧菜单新建任务新建任务新建任务选择构建一个自由风格的软件项目构建一个自由风格的软件项目构建一个自由风格的软件项目
任务名称在添加Web钩子需要用到 job=<你的Jenkins任务名>job=<你的Jenkins任务名>job=<你的Jenkins任务名>
- 在源码管理源码管理源码管理选择git,Repository URL粘贴你仓库地址,Credentials就是你的git用户名密码
4. 添加凭据,户名密码是git用户名密码,id随便填,用来区分的5.Gogs Webhook 这个你如果没有安装Gogs插件就不会有这一项,按需选择即可
6.构建触发器,我这里选择只要push就自动构建,按需选择即可
- 在Gogs找到仓库设置仓库设置仓库设置》管理web钩子管理web钩子管理web钩子》添加Web钩子添加Web钩子添加Web钩子》选择GogsGogsGogs
8.添加Web钩子填写推送地址 http(s)//<你的Jenkins地址>/gogs-webhook/?job=<你的Jenkins任务名>点击测试推送测试推送测试推送 成功 GOgs会看到下推送记录(绿色对号)
相应的Jenkins会出现一条构建信息此时基本完成了
- 构建环境 这个按需
- 构建
什么时候执行构建构建构建,就是满足配置触发条件后执行
执行shell执行 shell执行shell
在本地(Jenkins)执行shell 如打包等操作
SendfilesorexecutecommandsoverSSHSend files or execute commands over SSHSendfilesorexecutecommandsoverSSH在服务器上执行shell这里需要安装PublishoverSSHPublish over SSHPublishoverSSH插件
系统管理》系统配置》系统管理》系统配置》系统管理》系统配置》
- Name:随便写
- Hostname:服务器地址
- Username:服务器账号名
- Remote Directory:远程目录,上传文件用
- 点高级再改更多配置
- 勾选Use password authentication, or use a different key 使用密码登陆
- Passphrase / Password:服务器账密码
- Port:端口 默认22 不是记得改
- 点击testConnection 测试是否链接成功
- Source files 》任务中工作空间目录
- Remote directory 》服务器目录就是在Publish over SSH配置的Remote Directory
- Exec command》在服务器执行的shell
可以用 Source files拷贝文件到Remote directory
第一次搞jenkins,还有好多不懂,哪里对还请留言
有个问题还请懂得指教一下,Publish over SSH可以操作远程服务器,有没有能操作远程服务器上的docker的方法呢