
哈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”部分。 并设置在注册表中发布所需的环境变量

- CI_REGISTRY_PATH-我们注册表的路径(在我的情况下为registry.hub.docker.com/victorcallidus)
- CI_REGISTRY_USER-我们的储蓄帐户
- 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:
致谢
谢谢啦
列卡列夫俄罗斯茶炊x亚历克尼斯对于在系列文章中发现的错误