先看看官网的一些操作提示

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持续集成相关推荐

  1. 基于 CODING 轻松搞定持续集成

    点击观看视频教程 带你一步一步搞定 CODING 持续集成 持续集成加速软件交付 持续集成这个概念是由 Grady Booch 在 1991 年首次提出,随后成为了 DevOps 的核心实践之一.持续 ...

  2. coding制品库持续集成php项目,基于 CODING 轻松搞定持续集成

    点击观看视频教程 带你一步一步搞定 CODING 持续集成 持续集成加速软件交付 持续集成这个概念是由 Grady Booch 在 1991 年首次提出,随后成为了 DevOps 的核心实践之一.持续 ...

  3. 基于 CODING 的 Spring Boot 持续集成项目

    本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少 ...

  4. 持续集成基于腾讯云coding

    持续集成基于腾讯云coding 在项目开发中,每次修改完代码后,都需要我们手动打包部署到服务器中. 这个过程是重复的机械的,我们可以使用一定的方式来简化这个过程,让它自动化执行. 常见的方法有Jenk ...

  5. 集成git怎样更新代码_持续集成之理论篇

    本文作者:CODING 用户 - 何健 持续集成 ?--? 大概数周前,突然有学长问我有没有接触过"持续集成". 在我脑海中,这是一个陌生的词汇,于是百度了解了一番.实际上有开发和 ...

  6. ruby sinatra mysql_一分钟开始持续集成之旅系列之:Ruby + Sinatra 应用

    前言 现代软件工程越来越复杂,而开发效率随着软件复杂度增加呈指数型下降.为在提高开发效率的同时也能保证质量,越来越多团队开始践行敏捷开发方法. 持续集成是敏捷开发的重要实践之一.它倡导团队通过自动化构 ...

  7. 持续集成之 Spring Boot 实战篇

    本文作者: CODING 用户 - 何健 这次实战篇,我们借助「CODING 持续集成」,实现一个简单的 Spring Boot 项目从编码到最后部署的完整过程.本教程还有 B 站视频版,帮助读者更好 ...

  8. CI持续集成自动化测试——jenkins--Jenkins+Git+coding+maven 实现自动化测试环境搭建

    参考文档: jenkins--Jenkins+Git+coding+maven 实现自动化测试持续集成 - 小屁妞 - 博客园 1.打开Jenkins官网,下载jenkins.war https:// ...

  9. 2021-10-16 使用coding进行持续集成Qt项目

    文章目录 前言 一.准备工作 二.思路 三.使用步骤 1.项目pro文件中需包含以下代码 2. 在项目文件中添加几个bat文件 3.新建构建节点 4. 创建构建计划 5. 开源示例代码 总结 前言 对 ...

最新文章

  1. Linux安装gcc、gcc-c++等环境
  2. Linux系统高并发kernel参数优化
  3. 阿里云 RTC QoS 弱网对抗之变分辨率编码
  4. python selenium po模式_Python+Selenium+Unittest实现PO模式web自动化框架
  5. python界面工具pyqt基础教程
  6. 从零开始学JavaWeb
  7. ensp路由器无法启动_品胜云路由器Breed刷入详细教程,技巧和注意事项,功能大增...
  8. 四平方和(程序设计)
  9. 拳王虚拟项目公社:虚拟资源自动化赚钱的原理是什么?真的靠谱吗?会不会骗人?
  10. 京瓷打印机1025默认管理员密码_京瓷2235默认登录密码_动漫台
  11. java编译环境有问题_java: 用JCeator编译器,编译出现问题怎么解决?
  12. 孙鑫VC学习笔记:第二十讲 (一) Hook编程
  13. CentOS 7 安装Dukto(局域网通信工具)
  14. QGis(一)加载栅格图层和矢量图层
  15. 统一诊断服务(UDS)否定响应也可以被抑制
  16. Not authorized , ReasonPhrase:Unauthorized
  17. 闲情雅致-(诗词篇1)
  18. PS在园林计算机辅助设计中有哪些应用,计算机辅助设计在园林设计中的运用
  19. 干货分享|只发摘要也可以被SCIE检索吗?
  20. SQL Server实现split函数分割字符串功能及用法示例

热门文章

  1. 分布式系列之开源分布式存储技术分析
  2. 双目视觉下空间坐标计算matlab,双目视觉下空间坐标计算 opencv+ 个人理解
  3. java写一段程序代表心情_讨论java初步学习的方法及心情
  4. 升职加薪轮不到我,原来因为.....
  5. 记LeetCode第143次周赛(Weekly Contest 143)
  6. matlab led 指示灯,LED灯三种常见故障及解决方法
  7. hive 数字转换字符串_Hive数据类型转换
  8. linux桌面环境安装
  9. SAP 销售成本和收入的确认
  10. 爬虫Scrapy框架初体验