Blazor客户端在线商店:第2部分-CI / CD



哈Ha! 我继续在Blazor上做在线商店。 在这一部分中,我将讨论如何配置CI / CD。 有关详细信息,欢迎猫。

目录内容



参考文献


源代码
Docker注册表映像

Docker文件


将具有此类内容的Dockerfile添加到服务器项目,该项目将在Blazor上分发我们的SPA



FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build WORKDIR /src COPY ["src/BlazorEShop.Spa.BlazorWasm/Server/BlazorEShop.Spa.BlazorWasm.Server.csproj", "src/BlazorEShop.Spa.BlazorWasm/Server/"] COPY ["src/BlazorEShop.Spa.BlazorWasm/Client/BlazorEShop.Spa.BlazorWasm.Client.csproj", "src/BlazorEShop.Spa.BlazorWasm/Client/"] RUN dotnet restore "src/BlazorEShop.Spa.BlazorWasm/Server/BlazorEShop.Spa.BlazorWasm.Server.csproj" COPY . . WORKDIR "/src/src/BlazorEShop.Spa.BlazorWasm/Server" RUN dotnet build "BlazorEShop.Spa.BlazorWasm.Server.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "BlazorEShop.Spa.BlazorWasm.Server.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "BlazorEShop.Spa.BlazorWasm.Server.dll"] 

为Gitlab设置环境变量


转到存储库的“设置”->“ CI / CD”部分。 并设置在注册表中发布所需的环境变量



  1. CI_REGISTRY_PATH-我们注册表的路径(在我的情况下为registry.hub.docker.com/victorcallidus)
  2. CI_REGISTRY_USER-我们的储蓄帐户
  3. CI_REGISTRY_PASSWORD-我们的注册帐户的密码

Gitlab CI / CD


我们可以连接共享的运行程序,也可以设置构建docker的功能。



将具有此类内容的.gitlab-ci.yml文件添加到存储库

 image: docker:19.03.1 variables: DOCKER_HOST: tcp://docker:2375 DOCKER_TLS_CERTDIR: "" BLAZOR_SPA_LATEST: ${CI_REGISTRY_PATH}blazor-eshop-spa-blazor:latest BLAZOR_SPA_IMG_TAG: ${CI_REGISTRY_PATH}blazor-eshop-spa-blazor:$CI_COMMIT_REF_SLUG services: - docker:19.03.1-dind stages: - deploy_latest - deploy_tag - test deploy_tag: stage: deploy_tag script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY_PATH - docker build -t $BLAZOR_SPA_IMG_TAG -f ./src/BlazorEShop.Spa.BlazorWasm/Server/Dockerfile . - docker push $BLAZOR_SPA_IMG_TAG only: - tags deploy_latest: stage: deploy_latest script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY_PATH - docker build -t $BLAZOR_SPA_LATEST -f ./src/BlazorEShop.Spa.BlazorWasm/Server/Dockerfile . - docker push $BLAZOR_SPA_LATEST only: - master test: image: mcr.microsoft.com/dotnet/core/sdk:3.1-buster stage: test script: - "dotnet test ./BlazorEShop.sln" 


CI_COMMIT_REF_SLUG-Gitlab自行填充的环境变量。 如果这是常规提交,那么如果您按下标签,则分支的名称将写在此处(主,开发,阶段等),然后标签名称将在此处。 例如,如果按下dev11标签,则CI_COMMIT_REF_SLUG = dev11。

Docker-compose安装示例


例如,要通过docker-compose.yml运行,可以使用此类设置

 version: '3.4' services: blazoreshop.spa.blazorwasm.server: image: victorcallidus/blazor-eshop-spa-blazor:latest environment: - ASPNETCORE_ENVIRONMENT=Production - ASPNETCORE_URLS=https://+:443;http://+:80 - ASPNETCORE_HTTPS_PORT=8003 - ASPNETCORE_Kestrel__Certificates__Default__Password=1234Qwert - ASPNETCORE_Kestrel__Certificates__Default__Path=/root/.aspnet/https/blazor-eshop-spa-blazor.pfx - SsoUri=https://localhost:8000 - ApiUri=https://localhost:8001 ports: # - "7003:80" - "8003:443" volumes: - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro 


致谢


谢谢啦
列卡列夫
俄罗斯茶炊
x
亚历克尼斯
对于在系列文章中发现的错误

Source: https://habr.com/ru/post/zh-CN484782/


All Articles