项目准备:在项目解决方案同级别目录创建以下文件
1、Dockerfile.Debug
2、Dockerfile.Release
3、NuGet.Config
Dockerfile内容如下:两个差别只有RUN dotnet build和RUN dotnet publish这里有差别
#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:3.1 AS base WORKDIR /app EXPOSE 5016 EXPOSE 1448 FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build WORKDIR /src COPY ["NuGet.Config","src/"] COPY ["src/Benchint.Libra.DataReport.HttpApi.Host/Benchint.Libra.DataReport.HttpApi.Host.csproj", "src/Benchint.Libra.DataReport.HttpApi.Host/"] COPY ["src/Benchint.Libra.DataReport.Application/Benchint.Libra.DataReport.Application.csproj", "src/Benchint.Libra.DataReport.Application/"] COPY ["src/Benchint.Libra.DataReport.Domain/Benchint.Libra.DataReport.Domain.csproj", "src/Benchint.Libra.DataReport.Domain/"] COPY ["src/Benchint.Libra.DataReport.Domain.Shared/Benchint.Libra.DataReport.Domain.Shared.csproj", "src/Benchint.Libra.DataReport.Domain.Shared/"] COPY ["src/Benchint.Libra.DataReport.Application.Contracts/Benchint.Libra.DataReport.Application.Contracts.csproj", "src/Benchint.Libra.DataReport.Application.Contracts/"] COPY ["src/Benchint.Libra.DataReport.HttpApi/Benchint.Libra.DataReport.HttpApi.csproj", "src/Benchint.Libra.DataReport.HttpApi/"] COPY ["src/Benchint.Libra.DataReport.EntityFrameworkCore/Benchint.Libra.DataReport.EntityFrameworkCore.csproj", "src/Benchint.Libra.DataReport.EntityFrameworkCore/"] RUN dotnet restore "src/Benchint.Libra.DataReport.HttpApi.Host/Benchint.Libra.DataReport.HttpApi.Host.csproj" COPY . . WORKDIR "/src/src/Benchint.Libra.DataReport.HttpApi.Host" RUN dotnet build "Benchint.Libra.DataReport.HttpApi.Host.csproj" -c Debug -o /app/build FROM build AS publish RUN dotnet publish "Benchint.Libra.DataReport.HttpApi.Host.csproj" -c Debug -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENV ASPNETCORE_URLS="http://+:5016" RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo ‘Asia/Shanghai’ >/etc/timezone ENTRYPOINT ["dotnet", "Benchint.Libra.DataReport.HttpApi.Host.dll"]
以上文件是VS自动生成的,改了一部分
NuGet.Config文件的参考:docs.microsoft.com
1、新建项目
2、构建自由风格项目
3、填写项目描述,准备添加参数化构建过程
4、添加第一个字符参数-分支名称
BRANCH_NAME master dev 分支名称
5、添加第二个选项参数-编译方式
CIMPILE_MODE Debug Release 编译方式
6、添加第三个字符参数-镜像名称
IMAGE_NAME libar-datareport-host 镜像名称
7、添加第四个字符参数-主版本号
MAJOR_VERSION 1 主要版本号
8、添加第五个字符参数-次版本号
SUB_VERSION 1 次要版本号
9、添加第六个字符参数-镜像仓库
REGISTRY_NAME bq-dev 镜像仓库
10、开始配置源码管理-GIT
http://x.x.x.x/libra/lz1/Libra.DataReport.git ${BRANCH_NAME}
这里选择了具有对git仓库的管理和操作的账户-jenkins
然后指定的分支,是上面配置的变量BRANCH_NAME
11、源码配置完成,配置构建环境
env ls -la docker build --rm -t $REGISTRY_NAME/$IMAGE_NAME:$MAJOR_VERSION.$SUB_VERSION.$BUILD_NUMBER -f Dockerfile.$CIMPILE_MODE . docker ps -a | grep $IMAGE_NAME | awk '{print $1}' | xargs -r docker stop | xargs -r docker rm docker run -d --net host --name $IMAGE_NAME --restart always $REGISTRY_NAME/$IMAGE_NAME:$MAJOR_VERSION.$SUB_VERSION.$BUILD_NUMBER
11、点击开始构建即可
留下您的脚步
最近评论