
Hallo habr Ich mache weiterhin einen Online-Shop auf Blazor. In diesem Teil werde ich erläutern, wie ich CI / CD dafür konfiguriert habe. Für Details begrüßen Sie zur Katze.
Inhalt
Referenzen
QuellcodeDocker-RegistrierungsabbilderDockerfile
Fügen Sie dem Serverprojekt eine Docker-Datei mit solchen Inhalten hinzu, die unser SPA auf Blazor verteilt

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"]
Festlegen von Umgebungsvariablen für Gitlab
Gehen Sie zu Einstellungen -> CI / CD in unserem Repository. und legen Sie die Umgebungsvariablen fest, die für die Veröffentlichung in der Registrierung erforderlich sind

- CI_REGISTRY_PATH - der Pfad zu unserer Registrierung (in meinem Fall registry.hub.docker.com/victorcallidus)
- CI_REGISTRY_USER - unser Resitry-Konto
- CI_REGISTRY_PASSWORD - Kennwort aus unserem Registrierungskonto
Gitlab CI / CD
Wir verbinden die geteilten Läufer oder setzen Ihre eigenen mit der Fähigkeit, Docker zu bauen.

Fügen Sie die Datei .gitlab-ci.yml mit diesen Inhalten zum Repository hinzu
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 - Diese Umgebungsvariable, die Gitlab selbst füllt. Wenn es sich um ein reguläres Commit handelt, wird hier der Name des Zweigs (Master, Dev, Stage usw.) geschrieben, und wenn Sie ein Tag verschieben, wird ein Tag-Name angegeben. Wenn Sie beispielsweise das Tag dev11 drücken, ist CI_COMMIT_REF_SLUG = dev11.
Beispiel für die Einrichtung von Docker-Compose
Um beispielsweise die Datei docker-compose.yml auszuführen, können Sie solche Einstellungen verwenden
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:
Danksagung
Vielen Dank
ilekarevrussianssamovarkxlAlexnisfür Fehler in der Artikelserie