五金店网站模板,无锡装饰网站建设排名,网站建制作,上海响应式网站建设推荐前言#xff1a;本章讲述一下我使用Coding#xff08;Jenkinsfile#xff09; Docker部署Springboot项目过程#xff0c;记录图文细节和一些需要注意的问题。 说明#xff1a;为什么要使用Coding去集成Docker#xff1f; 节约了服务器内存#xff0c;不需要单独部署 Jen… 前言本章讲述一下我使用CodingJenkinsfile Docker部署Springboot项目过程记录图文细节和一些需要注意的问题。 说明为什么要使用Coding去集成Docker 节约了服务器内存不需要单独部署 Jenkins。Jenkins内存占用较多方便管理代码和部署放在同一个地方同时也支持其他的工作协同。Coding也支持其他的部署方式同时文档也较为齐全。 1. 配置服务器环境
前面几篇已经配置过了可以作为参考 Docker安装的图文细节 MySQL安装的图文细节 Redis安装的图文细节 2. 创建一个Springboot项目
1. 这里我使用一个优秀的开源项目为例芋道源码
运行项目需要安装JDKMySQLRedis可以参考官方文档运行
2. 拉取代码修改配置
这里我使用的环境是JDK21、MySQL8.0、Redis7.4
拉取代码之后切换分支到master-jdk17(JDK8使用默认的master分支)等待下载Maven依赖同时修改application文件 application.yaml的spring.profiles.active修改为dev application-dev.yaml的MySQL和Redis配置全部修改为自己的服务
3. 运行项目访问http://127.0.0.1:48080/ 如图正常运行启动如果不能正常启动可以参考源码文档排查问题 3. 把代码提交到Coding
1. 在Coding本地创建仓库
2. 修改本地代码的Git远程地址
3. 推送到Coding仓库上 4. 编写Jenkinsfile脚本
1. 选择 构建计划 java Spring Docker 2. 开始创建计划 如果你使用的系统较新的系统推荐使用账号和密码生成凭证。 刚开始的时候我是使用的是密钥但是我的系统是CentOS9不兼容较旧的Jenkins插件这里踩坑了我在官方的文档里也找到错误说明。 3. 流程配置 文本编辑器里我是这样配置的
pipeline {agent anystages {stage(检出) {steps {checkout([$class: GitSCM,branches: [[name: GIT_BUILD_REF]],userRemoteConfigs: [[url: GIT_REPO_URL,credentialsId: CREDENTIALS_ID]]])}}stage(编译) {agent {docker {reuseNode trueregistryUrl https://coding-public-docker.pkg.coding.netimage public/docker/openjdk:21-2024.03args -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker --entrypoint}}steps {sh mvn clean install -DskipTests -Dmaven.test.skiptrue}}stage(构建镜像并推送到 CODING Docker 制品库) {steps {script {docker.withRegistry(${CCI_CURRENT_WEB_PROTOCOL}://${CODING_DOCKER_REG_HOST},${CODING_ARTIFACTS_CREDENTIALS_ID}) {// 输出当前目录信息echo Current directory: ${env.WORKSPACE}// 切换到 yudao-server 目录dir(yudao-server) {// 构建 Docker 镜像def dockerImage docker.build(${CODING_DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_VERSION}, -f Dockerfile ${DOCKER_BUILD_CONTEXT})dockerImage.push()}}}}}stage(部署到远端服务) {steps {script {def remoteConfig [:]remoteConfig.name my-remote-ltbyremoteConfig.host ${REMOTE_HOST}remoteConfig.port 22remoteConfig.allowAnyHosts truewithCredentials([usernamePassword(credentialsId: ${REMOTE_CRED},passwordVariable: password,usernameVariable: userName),]) {// SSH 登录用户名remoteConfig.user userName// 密码登录remoteConfig.password passwordsshCommand(remote: remoteConfig,command: docker rm -f spring-boot | true,sudo: true,)// DOCKER_IMAGE_VERSION 中涉及到 GIT_LOCAL_BRANCH / GIT_TAG / GIT_COMMIT 的环境变量的使用// 需要在本地完成拼接后再传入到远端服务器中使用DOCKER_IMAGE_URL sh(script: echo ${CODING_DOCKER_REG_HOST}/${CODING_DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_VERSION},returnStdout: true)sshCommand(remote: remoteConfig,command: docker run -d -p 48080:48080 --name spring-boot ${DOCKER_IMAGE_URL},sudo: true,)echo 部署成功请到 http://${REMOTE_HOST}:48080 预览效果}}}}}environment {CODING_DOCKER_REG_HOST ${CCI_CURRENT_TEAM}-docker.pkg.${CCI_CURRENT_DOMAIN}CODING_DOCKER_IMAGE_NAME ${PROJECT_NAME.toLowerCase()}/${DOCKER_REPO_NAME}/${DOCKER_IMAGE_NAME}}}提醒如果你使用的也是jdk17以上的版本需要注意编译的时候不要使用默认的构建环境因为maven版本较低jdk17以上的版本会报错我是用的脚本是jdk21的编译环境如果你使用的是jdk8需要修改第19行代码image public/docker/openjdk:8-2024.03 4. 修改触发规则
根据你的需求进行修改也可以使用默认的
5. 修改变量和缓存
根据你的需求进行修改
6. 修改通知提醒
根据你的需求进行修改
7. 修改权限方案
根据你的需求进行修改 5. 开始构建 由于系统和环境的不同可能出现各种问题配置的时候尽量不加太多变量。 6. 构建成功
这里需要等待5-10分钟。 访问地址http://xxx.xxx.xxx.xxx:48080 xxx替换为服务器IP 如图可以正常访问到后台接口部署成功 结束语使用CodingJenkinsfile集成 Docker 自动化部署 Springboot 项目的基础配置大致上就是这样了。因为步骤较多所以有很多地方就简略的用图文表达了。 ——如果觉得文章有用点个赞支持一下——