本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上 (2)

触发构建器
可以配置一些定时构建等,我这里只是测试所以没有选择触发器。

本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上

构建环境

勾选Delete workspace before build starts

勾选Inject environment variables to the build process,存放构建是需要用到的环境变量

本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上

构建- 添加执行shell步骤
增加构建步骤-执行shell,脚本如下:

#切换目录 cd ./WebApplication #还原nuget包 dotnet restore #编译 dotnet build #删除之前发布文件 cd ./bin rm -rf web-publish rm -f web-publish.tar cd .. #发布 dotnet publish -o ./bin/web-publish #删除配置文件 cd ./bin/web-publish cp ../../Dockerfile . rm -rf config cd .. #压缩 tar -cvf web-publish.tar web-publish

构建后步骤

上传文件到服务器
增加构建后操作步骤-选择Publish artifacts to SCP Repository ,填入需要上传的压缩文件

本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上


这里文件目录的基础目录是workspace,如果不知道具体的地址,可以先不创建构建后步骤保存下,然后点击立即构建,等待成功后,点击工作空间看下文件路径是怎样的,比如我的是这样的:

本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上


得到压缩文件目录是WebApplication/bin/web-publish.tar

添加 服务器上要执行的shll命令 步骤

增加构建后操作轴- 选择 Send build artifacts over SSH

这里要新增两个Transfers Set,在第一个Transfers的Exec command输入创建镜像脚本:

# 工作目录 WORK_DIR="/root/publish/WebApplication"; cd ${WORK_DIR} # 删除原有发布文件夹 rm -rf web-publish; # 解压 tar -xvf web-publish.tar; #删除文件压缩包 rm -f web-publish.tar; #切换生成目录 cd web-publish/ #备份镜像 #停止容器 docker stop ${DOCKER_CONTAINER_NAME}; #删除容器 docker rm ${DOCKER_CONTAINER_NAME}; #删除镜像 docker rmi $(docker images | grep ${DOCKER_IMAGE_NAME}); #创建镜像 docker build -t ${DOCKER_IMAGE_NAME} ./;

在第二个Transfers的Exec command,输入运行容器命令:

# 运行容器 docker run -d -p 8001:80 --name ${DOCKER_CONTAINER_NAME} ${DOCKER_IMAGE_NAME}

本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上

到这里所有的设置都已经搞好啦,点击立即构建 测试一下吧~

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwwsx.html