技术思绪摘录旅行笔记
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。

项目准备:在项目解决方案同级别目录创建以下文件

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

image.png

1、新建项目

image.png

2、构建自由风格项目

image.png

3、填写项目描述,准备添加参数化构建过程

image.png

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}

image.png

这里选择了具有对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

image.png

11、点击开始构建即可

image.png

CarsonIT 微信扫码关注公众号 策略、创意、技术

留下您的脚步

 

最近评论

查看更多>>

站点统计

总文章数:275 总分类数:18 总评论数:88 总浏览数:128.56万

精选推荐

阅读排行

友情打赏

请打开您的微信,扫一扫