jekins 配合运维发布脚本

Step 1/12 : FROM avatar.tencentcloudcr.com/public-avatar/node:14 as node_build
—> 10c23e0e6c5b
Step 2/12 : ENV PATH=“/usr/local/node/bin:${PATH}”
—> Using cache
—> b76a5d4e9561
Step 3/12 : RUN mkdir -p /usr/src/app/
—> Using cache
—> 16c1d796aa9c
Step 4/12 : WORKDIR /usr/src/app/
—> Using cache
—> b630da0ff579
Step 5/12 : RUN cd /usr/src/app/ && npm config set registry http://172.31.0.15:4873/
—> Using cache
—> 0497c6eae147
Step 6/12 : COPY . /usr/src/app/
—> 91d75a8ae179
Step 7/12 : RUN sh auto-run.sh dev
—> Running in 4f13be02e4a8
[91mnpm[0m[91m WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I’ll try to do my best with it!
[0m[91mnpm WARN deprecated vuex-persistedstate@4.1.0: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
[0m[91mnpm WARN deprecated shvl@2.0.3: older versions vulnerable to prototype pollution
[0m[91mnpm ERR! code EBADPLATFORM
[0m[91mnpm ERR! notsup Unsupported platform for fsevents@2.3.2: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“x64”})
npm ERR! notsup Valid OS: darwin
npm [0m[91mERR! notsup Valid Arch: any
npm ERR! notsup Actual OS: linux
[0m[91mnpm [0m[91mERR! notsup Actual Arch: x64
[0m[91m
npm ERR![0m[91m A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-10-31T02_26_54_625Z-debug.log
[0m

myadmin@0.1.0 build:dev /usr/src/app
vue-cli-service build --mode development

[91msh: 1: vue-cli-service: not found
[0m[91mnpm ERR! code ELIFECYCLE
[0m[91mnpm ERR! [0m[91msyscall spawn
npm [0m[91mERR! file sh
npm ERR! errno[0m[91m ENOENT
[0m[91mnpm ERR! myadmin@0.1.0 build:dev: vue-cli-service build --mode development
npm[0m[91m ERR! spawn ENOENT
npm [0m[91mERR!
npm[0m[91m [0m[91mERR! Failed at the myadmin@0.1.0 build:dev script.
npm ERR![0m[91m This is probably not a problem with npm. There is likely additional logging output above.
[0m[91mnpm WARN Local package.json exists, but node_modules missing, did you mean to install?
[0m[91m
npm [0m[91mERR! A complete log of this run can be found in:
npm[0m[91m [0m[91mERR! /root/.npm/_logs/2022-10-31T02_26_54_852Z-debug.log
[0mThe command ‘/bin/sh -c sh auto-run.sh dev’ returned a non-zero code: 1
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Jenkins 中使用 "Publish over SSH" 插件来部署 Java 应用可以使用下列脚本: ``` #! /bin/bash # 从 Jenkins 构建参数中获取相关信息 JENKINS_BUILD_ID=$1 JENKINS_BUILD_NUMBER=$2 JENKINS_JOB_NAME=$3 JENKINS_BUILD_TAG=$4 # 连接到目标服务器并执行相应命令 ssh user@example.com << EOF # 在远程服务器上创建文件夹 mkdir -p /opt/jenkins/$JENKINS_JOB_NAME/$JENKINS_BUILD_NUMBER # 从 Jenkins 服务器上下载文件 scp [email protected]:/opt/jenkins/$JENKINS_JOB_NAME/workspace/$JENKINS_JOB_NAME/*.jar /opt/jenkins/$JENKINS_JOB_NAME/$JENKINS_BUILD_NUMBER # 停止应用 systemctl stop myapp.service # 备份当前应用 mv /opt/myapp /opt/myapp.bak # 将新应用文件移动到目标位置 mv /opt/jenkins/$JENKINS_JOB_NAME/$JENKINS_BUILD_NUMBER /opt/myapp # 启动应用 systemctl start myapp.service EOF ``` 在上面的脚本中,我们使用 Jenkins 的构建参数来获取构建信息,然后连接到目标服务器并使用 scp 命令从 Jenkins 服务器上下载文件。接下来,我们停止旧版应用,将新版应用移动到目标位置,并启动新版应用。 ### 回答2: Jenkins是一个开源的持续集成工具,用于自动化构建、测试和部署软件项目。Publish over SSH是Jenkins的一个插件,用于将构建的项目文件通过SSH协议发布到远程服务器上。 在Jenkins中使用Publish over SSH插件执行Java启动脚本时,首先需要在Jenkins管理界面中安装和配置该插件。配置步骤大致如下: 1. 在Jenkins管理界面选择“系统设置”。 2. 在页面下方找到“Publish over SSH”插件的配置区域。 3. 点击“Add”按钮添加一个SSH服务器配置。 4. 在配置页面中填写远程服务器的连接信息,包括主机名、SSH端口号、用户名和密码等。还可以选择“Advanced”选项以配置其他高级设置,如使用私钥登录等。 5. 点击“Test Configuration”按钮进行连接测试,确保连接配置正确无误。 6. 保存配置并返回到Jenkins主页。 接下来,我们可以在Jenkins的构建项目中使用Publish over SSH插件启动Java脚本。具体步骤如下: 1. 打开需要使用SSH插件的Jenkins构建项目。 2. 在“构建环境”中勾选“Send files or execute commands over SSH after the build runs”选项。 3. 在“SSH Server”一栏选择之前配置好的SSH服务器配置。 4. 在“Transfers”一栏中可以设置要传输的文件和目标目录。 5. 在“Exec Command”一栏中填写要执行的Java启动脚本命令。 6. 保存并触发构建。 当Jenkins执行该项目时,它将会使用SSH协议将构建产物和Java启动脚本传输到远程服务器上,并且在远程服务器上通过SSH执行该脚本。 通过使用Jenkins的Publish over SSH插件和Java启动脚本,我们可以方便地实现自动化部署和执行远程命令,从而简化软件项目的部署和管理过程。同时,该插件还支持其他高级功能和设置,如跳过主机密钥验证、使用跳板机访问远程服务器等,以满足不同场景下的需求。 ### 回答3: 用Jenkins的Publish Over SSH插件,可以通过SSH连接到远程服务器,并执行一个Java启动脚本。 首先,确保在Jenkins服务器上安装了Publish Over SSH插件,并在插件管理中启用它。 然后,打开Jenkins的配置页面,在"系统设置"部分找到"Publish over SSH"配置项。点击"Add"按钮,配置SSH服务器的连接信息,包括远程服务器的IP地址、SSH端口号、用户名和密码。 接下来,在Jenkins任务中,配置构建步骤。选择"Execute shell script on remote host using ssh"选项,并输入要执行的Java启动脚本的命令,例如: ``` java -jar /path/to/your/java/jar/file.jar ``` 保存并触发构建,Jenkins将通过SSH连接到远程服务器,并执行Java启动脚本。通过Publish Over SSH插件,你可以轻松地将构建输出发布到远程服务器。 这种方法非常适用于需要在远程服务器上执行Java应用程序的场景,例如部署到生产环境或测试环境中。同时,Jenkins的发布和部署过程也能够自动化,并进行可靠的版本管理和回滚操作,极大地提高了开发和运维的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值