coding持续集成
先看看官网的一些操作提示
1、创建SSH密钥对
2、创建制品仓库
看完官网的介绍,持续集成需要提前准备好SSH凭证和制品仓库,下面将让我们动手开始吧
一、创建SSH密钥对
登录服务器控制台,创建 SSH 密钥对。获取私钥对后将其录入至 CODING 中的 凭据管理 中,将公钥 id_rsa.pub 的内容复制到服务器的 ~/.ssh/authorized_keys 中。
ssh-keygen -m PEM -t rsa -b 4096 -C "your.email@example.com"
二、录入凭据--SSH私钥
创建好后将列表的凭据ID记录下来
三、 创建制品仓库
创建好后将命令记录下来,里面包含了三个参数,用户名、密码、host
四、构建后端
1、Pipeline 脚本
/opt/coding/ 是我的云服务器jar包所在地,/opt/coding/ start.sh 是启动的脚本
def remoteConfig = [:]
remoteConfig.name = "my-remote-server"
remoteConfig.host = "${REMOTE_HOST}"
remoteConfig.port = "${REMOTE_SSH_PORT}".toInteger()
remoteConfig.allowAnyHosts = truewithCredentials([sshUserPrivateKey(credentialsId: "${REMOTE_CRED}",keyFileVariable: "privateKeyFilePath"),usernamePassword(credentialsId: "${CODING_ARTIFACTS_CREDENTIALS_ID}",usernameVariable: 'CODING_DOCKER_REG_USERNAME',passwordVariable: 'CODING_DOCKER_REG_PASSWORD')
]) {// SSH 登录用户名remoteConfig.user = "${REMOTE_USER_NAME}"// SSH 私钥文件地址remoteConfig.identityFile = privateKeyFilePath// 请确保远端环境中有 Docker 环境sshCommand(remote: remoteConfig,command: "docker login -u ${CODING_DOCKER_REG_USERNAME} -p ${CODING_DOCKER_REG_PASSWORD} ${CODING_DOCKER_REG_HOST}",sudo: true,)stage("推送文件") {sshPut remote: remoteConfig, from: "target/monkey.jar" , into: '/opt/coding/'}sshCommand(remote: remoteConfig,command: "sh /opt/coding/start.sh",sudo: true,)echo "部署成功"
}
2、环境变量
3、云服务器配置
# Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD monkey.jar docker-monkey.jar
ENTRYPOINT ["java","-Xms500m","-Xmx500m","-XX:MetaspaceSize=256m","-XX:MaxMetaspaceSize=500m", "-jar","/docker-monkey.jar"]
# start.sh
cd /opt/coding/
docker build -t monkey .
docker stop monkey | true
docker rm monkey | true
docker run -v /lanren312/docker-workspace/nginx/html/file/monkey/:/lanren312/docker-workspace/nginx/html/file/monkey/ -it -m 512M -p 9001:9001 \
--restart always -d --name=monkey monkey:latest
配置完成后,点击 立即构建,稍等一会就可以看到构建成功,当你修改代码提交到仓库,coding的持续集成就会自动同步代码,不用再去手动同步代码了。
五、构建前端
1、Pipeline 脚本
将前端打包的文件 /monkey 拷贝到了 /lanren312/docker-workspace/nginx/html/ 目录下
def remoteConfig = [:]
remoteConfig.name = "my-remote-server"
remoteConfig.host = "${REMOTE_HOST}"
remoteConfig.allowAnyHosts = truewithCredentials([sshUserPrivateKey(credentialsId: "${REMOTE_CRED}",keyFileVariable: "privateKeyFilePath"),usernamePassword(credentialsId: "${CODING_ARTIFACTS_CREDENTIALS_ID}",usernameVariable: 'CODING_DOCKER_REG_USERNAME',passwordVariable: 'CODING_DOCKER_REG_PASSWORD')
]) {// SSH 登陆用户名remoteConfig.user = "${REMOTE_USER_NAME}"// SSH 私钥文件地址remoteConfig.identityFile = privateKeyFilePath// 删除文件 ps: 这个是后面加的..sshCommand remote: remoteConfig, command: "rm -rf /lanren312/docker-workspace/nginx/html/monkey"stage("推送文件") {sshPut remote: remoteConfig, from: "./monkey" , into: '/lanren312/docker-workspace/nginx/html/'}echo "部署成功"
}
六、记录构建中碰到的问题
1、后端
提交工单,客服回复 “Auth fail是ssh密钥认证失败,麻烦本地检查一下密钥是否能够正常连接到目标服务器”,后发现公钥 id_rsa.pub 的内容复制到服务器的 ~/.ssh/authorized_keys 中时不一致导致,复制要仔细哦
2、前端
持续构建,发现云服务上的文件时间没有更新,其实内容是更新了的。
完
coding持续集成相关推荐
- 基于 CODING 轻松搞定持续集成
点击观看视频教程 带你一步一步搞定 CODING 持续集成 持续集成加速软件交付 持续集成这个概念是由 Grady Booch 在 1991 年首次提出,随后成为了 DevOps 的核心实践之一.持续 ...
- coding制品库持续集成php项目,基于 CODING 轻松搞定持续集成
点击观看视频教程 带你一步一步搞定 CODING 持续集成 持续集成加速软件交付 持续集成这个概念是由 Grady Booch 在 1991 年首次提出,随后成为了 DevOps 的核心实践之一.持续 ...
- 基于 CODING 的 Spring Boot 持续集成项目
本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少 ...
- 持续集成基于腾讯云coding
持续集成基于腾讯云coding 在项目开发中,每次修改完代码后,都需要我们手动打包部署到服务器中. 这个过程是重复的机械的,我们可以使用一定的方式来简化这个过程,让它自动化执行. 常见的方法有Jenk ...
- 集成git怎样更新代码_持续集成之理论篇
本文作者:CODING 用户 - 何健 持续集成 ?--? 大概数周前,突然有学长问我有没有接触过"持续集成". 在我脑海中,这是一个陌生的词汇,于是百度了解了一番.实际上有开发和 ...
- ruby sinatra mysql_一分钟开始持续集成之旅系列之:Ruby + Sinatra 应用
前言 现代软件工程越来越复杂,而开发效率随着软件复杂度增加呈指数型下降.为在提高开发效率的同时也能保证质量,越来越多团队开始践行敏捷开发方法. 持续集成是敏捷开发的重要实践之一.它倡导团队通过自动化构 ...
- 持续集成之 Spring Boot 实战篇
本文作者: CODING 用户 - 何健 这次实战篇,我们借助「CODING 持续集成」,实现一个简单的 Spring Boot 项目从编码到最后部署的完整过程.本教程还有 B 站视频版,帮助读者更好 ...
- CI持续集成自动化测试——jenkins--Jenkins+Git+coding+maven 实现自动化测试环境搭建
参考文档: jenkins--Jenkins+Git+coding+maven 实现自动化测试持续集成 - 小屁妞 - 博客园 1.打开Jenkins官网,下载jenkins.war https:// ...
- 2021-10-16 使用coding进行持续集成Qt项目
文章目录 前言 一.准备工作 二.思路 三.使用步骤 1.项目pro文件中需包含以下代码 2. 在项目文件中添加几个bat文件 3.新建构建节点 4. 创建构建计划 5. 开源示例代码 总结 前言 对 ...
最新文章
- Linux安装gcc、gcc-c++等环境
- Linux系统高并发kernel参数优化
- 阿里云 RTC QoS 弱网对抗之变分辨率编码
- python selenium po模式_Python+Selenium+Unittest实现PO模式web自动化框架
- python界面工具pyqt基础教程
- 从零开始学JavaWeb
- ensp路由器无法启动_品胜云路由器Breed刷入详细教程,技巧和注意事项,功能大增...
- 四平方和(程序设计)
- 拳王虚拟项目公社:虚拟资源自动化赚钱的原理是什么?真的靠谱吗?会不会骗人?
- 京瓷打印机1025默认管理员密码_京瓷2235默认登录密码_动漫台
- java编译环境有问题_java: 用JCeator编译器,编译出现问题怎么解决?
- 孙鑫VC学习笔记:第二十讲 (一) Hook编程
- CentOS 7 安装Dukto(局域网通信工具)
- QGis(一)加载栅格图层和矢量图层
- 统一诊断服务(UDS)否定响应也可以被抑制
- Not authorized , ReasonPhrase:Unauthorized
- 闲情雅致-(诗词篇1)
- PS在园林计算机辅助设计中有哪些应用,计算机辅助设计在园林设计中的运用
- 干货分享|只发摘要也可以被SCIE检索吗?
- SQL Server实现split函数分割字符串功能及用法示例
热门文章
- 分布式系列之开源分布式存储技术分析
- 双目视觉下空间坐标计算matlab,双目视觉下空间坐标计算 opencv+ 个人理解
- java写一段程序代表心情_讨论java初步学习的方法及心情
- 升职加薪轮不到我,原来因为.....
- 记LeetCode第143次周赛(Weekly Contest 143)
- matlab led 指示灯,LED灯三种常见故障及解决方法
- hive 数字转换字符串_Hive数据类型转换
- linux桌面环境安装
- SAP 销售成本和收入的确认
- 爬虫Scrapy框架初体验