阿里云效替代jenkins部署netcore程序

问题描述:随着jenkins的不断升级,占用内存是越来越夸张,还需要宿主机上安装java11,最新版java11也不好使了,云服务器内存吃紧就寻思的换个思路走CI/CD,尝试使用阿里云效,折腾了半天感觉效果还行。编译打包方式与jenkins略有不同,之前是将代码拉到服务器jenkins目录,通过Dockerfile执行编译、发布、打包镜像流程,现在是将代码拉到阿里,执行编译、发布,生成发布文件压缩包,下载到服务器目录,执行解压、打包镜像流程。

解决方案:登录阿里云效,新建流水线,下面贴大概流程及关键部署脚本。

 流水线页面详情

 构建环节和官网给的代码是一致的

# input your command here
dotnet restore
dotnet publish -c Release -o out

主机部署脚本如下

tar zxvf /home/admin/app/package.tgz -C /home/admin/xxx/
cd /home/admin/xxx/
image_version=`date +%Y%m%d%H%M`;
echo $image_version;
# 停止之前的docker container
docker stop xxx;
# 删除这个container
docker rm xxx;
# build镜像并且打上tag
docker build -t xxx:$image_version .;
docker images;
# 把刚刚build出来的镜像跑起来
docker run -p 8238:8238 -e TZ=Asia/Shanghai --restart=always --name xxx -d xxx:$image_version;
docker logs xxx;

Dockerfile脚本如下

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
RUN apt-get clean
RUN apt-get update
RUN apt-get -y install fonts-wqy-zenhei && apt-get clean &&  fc-cache -fv
WORKDIR /app
EXPOSE 8238

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
COPY ./ /app

FROM build AS publish

FROM base AS final
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "xxx.Mvc.dll"]

哦了,下一步就是卸载jenkins了。。。

 

posted @ 2024-01-26 11:24  wangbg  阅读(81)  评论(0编辑  收藏  举报