Toko Online Sisi Klien Blazor: Bagian 2 - CI / CD



Halo, Habr! Saya terus melakukan toko online di Blazor. Pada bagian ini saya akan berbicara tentang bagaimana saya mengkonfigurasi CI / CD untuk itu. Untuk detailnya, selamat datang di kucing.

Isi



Referensi


Kode sumber
Gambar Pendaftaran Docker

Dockerfile


Tambahkan Dockerfile dengan konten seperti itu ke proyek server yang akan mendistribusikan SPA kami di 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"] 

Mengatur Variabel Lingkungan untuk Gitlab


Buka bagian Pengaturan -> CI / CD dari repositori kami. dan mengatur variabel lingkungan yang diperlukan untuk publikasi dalam Registry



  1. CI_REGISTRY_PATH - jalur ke registri kami (dalam kasus saya registry.hub.docker.com/victorcallidus)
  2. CI_REGISTRY_USER - akun resitry kami
  3. CI_REGISTRY_PASSWORD - kata sandi dari akun registri kami

Gitlab CI / CD


Kami menghubungkan pelari bersama atau mengatur pelari Anda dengan kemampuan untuk membangun buruh pelabuhan.



Tambahkan file .gitlab-ci.yml dengan konten seperti itu ke repositori

 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 - variabel lingkungan ini yang diisi sendiri oleh Gitlab. Jika ini adalah komit reguler, maka nama cabang (master, dev, stage, dll) ditulis di sini, jika Anda mendorong tag, maka akan ada nama tag. Misalnya, jika Anda menekan tag dev11, maka CI_COMMIT_REF_SLUG = dev11.

Contoh pengaturan docker-compose


Untuk menjalankan misalnya melalui docker-compose.yml, Anda dapat menggunakan pengaturan tersebut

 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 


Ucapan Terima Kasih


Terima kasih
ilekarev
russianssamovar
kxl
Alexnis
untuk kesalahan yang ditemukan dalam serangkaian artikel

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


All Articles