Gitlab Runner实现NetCore自动化持续集成

Posted tianyaguoke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gitlab Runner实现NetCore自动化持续集成相关的知识,希望对你有一定的参考价值。

目录

1.开发工具

2.GitLab服务器搭建

3.新建webapi

4.Dockerfile配置

5.配置docker-compose.yml

6.配置.gitlab-ci.yml

7.在GitLab上添加一个新项目

8.GitLib Runner安装

9.提交代码到gitlab

10.在GitLab上查看运行状态

11.本地运行


1.开发工具

  • VSCode
    • 插件:C#、Docker

2.GitLab服务器搭建

3.新建webapi

  • dotnet new webapi --name Demo

  • 在Program中修改启动地址:.UseUrls("http://*:80")

4.Dockerfile配置

  • 在VSCode中打开命令面板:Ctrl+Shift+P

  • 输入:ADD Docker Files to Workspace
    • 选择 ASP.Net Core
    • 选择 Linux
    • 80
  • 默认配置可能有问题,修改Dockerfile文件,配置如下
    FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
    WORKDIR /app

    # Copy csproj and restore as distinct layers
    COPY *.csproj ./
    RUN dotnet restore

    # Copy everything else and build
    COPY . ./
    RUN dotnet publish -c Release -o out

    # Build runtime image
    FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
    WORKDIR /app
    COPY --from=build-env /app/out .
    EXPOSE 80
    ENTRYPOINT ["dotnet", "Demo.dll"]
  • 确保文件在项目根目录下

5.配置docker-compose.yml

  • 在项目根目录下新建docker-compose.yml文件

  • 添加配置如下,格式非常重要
    version: ‘3‘

    services:
    web:
        build: .
        container_name: aspnetcore
        ports:
        - ‘8080:80‘

6.配置.gitlab-ci.yml

  • 在项目根目录下新建.gitlab-ci.yml文件

  • 添加配置如下
    rtest:
     script:
      - docker-compose up -d --build --force-recreate

7.在GitLab上添加一个新项目

技术图片

8.GitLib Runner安装

  • 环境:win10

  • 下载地址

  • 注册一个runner
    • 使用Powershell运行:./gitlab-runner.exe register
    • 输入gitlab地址:http://127.0.0.1
    • 输入令牌:在gitlab的项目=>设置=>CI/CD=>Runner中 找到注册令牌
    • 输出描述:test
    • 输入tags:beta
    • 输入excutor方式:shell
  • 安装:gitlab-runner.exe install

  • 启动:gitlab-runner.exe start

技术图片

9.提交代码到gitlab

  • 每次提交会触发gitlab runner,实现自动化部署

  • git命令如下
    git init
    git remote add origin ssh://地址
    git add .
    git commit -m "Initial commit"
    git push -u origin master

10.在GitLab上查看运行状态

技术图片

11.本地运行:http://localhost:8080/api/values

技术图片

以上是关于Gitlab Runner实现NetCore自动化持续集成的主要内容,如果未能解决你的问题,请参考以下文章

gitlab+gitlab-runner搭建自动化部署

使用Gitlab实现自动化部署与持续集成

M1 Mac 使用 gitlab-runner 自动化打包上传

Gitlab-runner 安装和配置

gitlab,gitlab runner自动化部署docker容器

gitlab-ci-runner安装