
مرحبا يا هبر! ما زلت تفعل متجر على الانترنت على 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 في مستودعنا. وتعيين متغيرات البيئة اللازمة للنشر في التسجيل

- CI_REGISTRY_PATH - المسار إلى السجل الخاص بنا (في حالتي registry.hub.docker.com/victorcallidus)
- CI_REGISTRY_USER - حساب إعادة الاستخدام الخاص بنا
- 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:
شكر
شكرا لك
ilekarevrussianssamovarkxlAlexNisعن الأخطاء الموجودة في سلسلة المقالات