jenkins上发布项目后将文件推送到另一台服务器build镜像
1、配置jenkins
1)主页面点击manage jenkins
2) 选择SystemConfiguration
3) 配置服务器信息,注意密码一定要输入对,还有端口有,一般是默认的22端口,但有的不是默认的22端口,配置好后记得点一下test看是否连接成功
4)配置插件:publish-over-ssh、MSBuild Plugin、.NET SDK Support、Localization: Chinese (Simplified)
如何安装插件及安装报错请参照我另我篇博客:
2、jenkins写项目的自动发布脚本
如果你jenkins是部署在windows上,一定要在构建的部分选择windows batch command
命令主要作如下的几件事件:
1)、删除原来的发布目录
2)、定位到web项目后发布项目
3)、判断压缩文件是否存在,如果存在则删除
4)、压缩发布目录
dotnet --version rd /s /q Oms-Microservice\applications\Jzt.Spd.Web\bin\Release\net5.0\publish cd Oms-Microservice\applications\Jzt.Oms.Web dotnet clean dotnet publish -c:Release echo '编译完成,开始压缩文件' cd bin\Release\net5.0 if exist "omsweb-dev.zip" (del omsweb-dev.zip) E:\7z\7-Zip\7z.exe a -tzip omsweb-dev.zip publish echo '压缩完成'
注意:如果打包用的服务器没有外网,是自己项目中的包,那publish这样写:dotnet publish --source D:\apache-tomcat-9.0.80\webapps\jenkins\workspace\spd-web\nugetpackge -c:Release
其中,--source参数后的文件为工作路径
选择Send build artifacts over SSH ,将发布目录推送到指定的服务器,并执行build 成docker 镜像的脚本
注意:SSH Publishers在高级后选中如下的选项
注意:如果连接服务器时间不够请在Transfers高级后改为300000,默认是120000
在另一台linux上要执行的脚本如下;
主要是登录到镜像仓库,build镜像,并将镜像上传到镜像仓库
常见问题:
1、Filename too long
解决方案一:
直接在jenkins服务器上右键---->git bash here --->执行命令:git config --global core.longpaths true
解决方案二:
1)安装Environment Injector插件
2)jenkins新建item选择自由风格项目
3)选择Prepare an environment for the run
4)勾选 Keep Jenkins Environment Variables 和 Keep Jenkins Build Variables
5)Script Content框内加入: git config --global core.longpaths true