Blazor Client Side Store على الإنترنت: الجزء 2 - CI / CD



مرحبا يا هبر! ما زلت تفعل متجر على الانترنت على Blazor. سأتحدث في هذا الجزء عن كيفية تكوين CI / CD له. لمزيد من التفاصيل ، مرحبا بكم في القط.

محتوى



مراجع


شفرة المصدر
صور عامل الميناء التسجيل

Dockerfile


أضف Dockerfile بمثل هذا المحتوى إلى مشروع الخادم الذي سيوزع SPA الخاص بنا على Blazor



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


نحن نربط المتسابقين المشتركين أو نضع مجموعة خاصة بك مع القدرة على بناء عامل ميناء.



أضف ملف .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.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 


شكر


شكرا لك
ilekarev
russianssamovar
kxl
AlexNis
عن الأخطاء الموجودة في سلسلة المقالات

Source: https://habr.com/ru/post/ar484782/


All Articles