
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 sumberGambar Pendaftaran DockerDockerfile
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

- CI_REGISTRY_PATH - jalur ke registri kami (dalam kasus saya registry.hub.docker.com/victorcallidus)
- CI_REGISTRY_USER - akun resitry kami
- 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:
Ucapan Terima Kasih
Terima kasih
ilekarevrussianssamovarkxlAlexnisuntuk kesalahan yang ditemukan dalam serangkaian artikel