用Docker发布网站时,自动下载Directory.Build.props及其Import的文件
为Blazor网站项目,“添加Docker支持”
这时,网站项目根目录下会新增Dockerfile。
里面文字内容如下
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["NuGet.Config", "."]
COPY ["src/Yee.Change.PayPortal.Blazor/Yee.Change.PayPortal.Blazor.csproj", "src/Yee.Change.PayPortal.Blazor/"]
COPY ["src/Yee.Change.PayPortal.Application/Yee.Change.PayPortal.Application.csproj", "src/Yee.Change.PayPortal.Application/"]
COPY ["src/Yee.Change.PayPortal.Domain/Yee.Change.PayPortal.Domain.csproj", "src/Yee.Change.PayPortal.Domain/"]
COPY ["src/Yee.Change.PayPortal.Domain.Shared/Yee.Change.PayPortal.Domain.Shared.csproj", "src/Yee.Change.PayPortal.Domain.Shared/"]
COPY ["src/Yee.Change.PayPortal.Application.Contracts/Yee.Change.PayPortal.Application.Contracts.csproj", "src/Yee.Change.PayPortal.Application.Contracts/"]
COPY ["src/Yee.Change.PayPortal.HttpApi/Yee.Change.PayPortal.HttpApi.csproj", "src/Yee.Change.PayPortal.HttpApi/"]
COPY ["src/Yee.Change.PayPortal.EntityFrameworkCore/Yee.Change.PayPortal.EntityFrameworkCore.csproj", "src/Yee.Change.PayPortal.EntityFrameworkCore/"]
RUN dotnet restore "./src/Yee.Change.PayPortal.Blazor/Yee.Change.PayPortal.Blazor.csproj"
COPY . .
WORKDIR "/src/src/Yee.Change.PayPortal.Blazor"
RUN dotnet build "./Yee.Change.PayPortal.Blazor.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./Yee.Change.PayPortal.Blazor.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Yee.Change.PayPortal.Blazor.dll"]
在第二步用的镜像,我们需要干预一下,里面加入我们docker-linux-dotnet8:2024镜像里的脚本文件。制作好这个脚本之后,push到我们的服务器。
假定这个镜像是docker.amicap.cn/amihome/dotnet/sdk8:2024
那么我们把Visual Studio默认生成的Dockerfile,稍微修改一下
FROM docker.amicap.cn/amihome/dotnet/sdk8:2024 AS build
WORKDIR /
# 因为要运行下边这个shell,所以build镜像不能用默认的mcr.microsoft.com/dotnet/sdk:8.0
# 我们自己的镜像是包含下边这个shell的
RUN /home/public/download-directory-builds-props.sh dev.amihome.cn
Gitlab服务器上的设置
适用于本项目或群组级别的变量
本项目的 .gitlab-ci.yml
解决方案根目录下,.gitlab-ci.yml的内容如下
stages:
- build-docker-image
- docker-run-on-local-app-server
variables:
PAY_IMAGE_FULL_URL: $DOCKER_REPOZITORY_URL/pay:$CI_PIPELINE_ID
# Use no compression for caches
CACHE_COMPRESSION_LEVEL: "fastest"
cache:
paths:
- node_modules/
build API:
stage: build-docker-image
before_script:
- dotnet nuget locals plugins-cache --clear
- echo $DOCKER_LOGIN_USER $DOCKER_LOGIN_PASSWORD $DOCKER_REGISTRY_DNS_NAME
- docker login -u $DOCKER_LOGIN_USER -p $DOCKER_LOGIN_PASSWORD $DOCKER_REGISTRY_DNS_NAME
script:
- cd .
- docker buildx build --platform linux/amd64 -t $PAY_IMAGE_FULL_URL -f src/Yee.Change.PayPortal.Blazor/Dockerfile --no-cache . --push
部署支付网关(测试站):
stage: docker-run-on-local-app-server
script:
- echo "部署到支付网关测试站……"
- bash "/home/public/ssh-to-app-server-docker-run.sh" pay_test 58003 8080 $PAY_IMAGE_FULL_URL amisoft $DOCKER_REGISTRY_DNS_NAME $DOCKER_LOGIN_USER $DOCKER_LOGIN_PASSWORD $SSH_AUTO_LOGIN_USER $APP_SERVER
签入Gitlab
任务成功
build-docker-image的输出如下
Running with gitlab-runner 16.9.0 (656c1943)
on 春漫里1号大力士 rzPy7M6hB, system ID: r_aAMlDtmiasEr
Preparing the "docker" executor 00:00
Using Docker executor with image docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0:20240227014 ...
Authenticating with credentials from $DOCKER_AUTH_CONFIG
Pulling docker image docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0:20240227014 ...
Using docker image sha256:401be2ca165ffb3ef00c3e2bd172645dca0836969eadb800b60da3c5f20123c3 for docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0:20240227014 with digest docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0@sha256:899a45e25d3a397672c30c30bbdfc6719e80d706b24c2fa6265b413ab6ec85c7 ...
Preparing environment 00:01
Running on runner-rzpy7m6hb-project-37-concurrent-0 via 7171ce851b00...
Getting source from Git repository 00:02
Fetching changes with git depth set to 20...
Reinitialized existing Git repository in /builds/rzPy7M6hB/0/abp7/pay-portal/.git/
Checking out 4301a757 as detached HEAD (ref is master)...
Skipping Git submodules setup
Restoring cache 00:01
Checking cache for default-protected...
No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted.
Successfully extracted cache
Executing "step_script" stage of the job script 02:53
Using docker image sha256:401be2ca165ffb3ef00c3e2bd172645dca0836969eadb800b60da3c5f20123c3 for docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0:20240227014 with digest docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0@sha256:899a45e25d3a397672c30c30bbdfc6719e80d706b24c2fa6265b413ab6ec85c7 ...
$ dotnet nuget locals plugins-cache --clear
Welcome to .NET 8.0!
---------------------
SDK Version: 8.0.200
Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate, view the instructions: https://aka.ms/dotnet-https-linux
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
Clearing NuGet plugins cache: /root/.local/share/NuGet/plugin-cache
Local resources cleared.
$ echo $DOCKER_LOGIN_USER $DOCKER_LOGIN_PASSWORD $DOCKER_REGISTRY_DNS_NAME
david NXbdusoeiu*2349243_ded docker.amicap.cn
$ docker login -u $DOCKER_LOGIN_USER -p $DOCKER_LOGIN_PASSWORD $DOCKER_REGISTRY_DNS_NAME
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
$ cd .
$ docker build -t $FRONT_API_REPO:$PAY_PORTAL_IMAGE_TAG -f src/Yee.Change.PayPortal.Blazor/Dockerfile --no-cache .
#0 building with "default" instance using docker driver
#1 [internal] load .dockerignore
#1 transferring context: 358B done
#1 DONE 0.0s
#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 2.05kB done
#2 DONE 0.0s
#3 [internal] load metadata for docker.amicap.cn/amihome/dotnet/sdk8:2024
#3 DONE 0.0s
#4 [auth] sharing credentials for docker.amicap.cn
#4 DONE 0.0s
#5 [internal] load metadata for docker.amicap.cn/dotnet/aspnet:8.0
#5 DONE 0.1s
#6 [base 1/2] FROM docker.amicap.cn/dotnet/aspnet:8.0@sha256:29d068474f1a60fab7ee3a138ceb6a0c3ba9a81d77c96c28accc281a1327501d
#6 DONE 0.0s
#7 [base 2/2] WORKDIR /app
#7 CACHED
#8 [final 1/4] WORKDIR /app
#8 CACHED
#9 [build 1/16] FROM docker.amicap.cn/amihome/dotnet/sdk8:2024
#9 CACHED
#10 [internal] load build context
#10 transferring context: 30.32MB 0.3s done
#10 DONE 0.3s
#11 [build 2/16] RUN /home/public/download-directory-builds-props.sh dev.amihome.cn
#11 0.255 off
#11 0.256 共享版本号的http服务器是 dev.amihome.cn
#11 0.256 下载urlx.txt
#11 0.256 http://dev.amihome.cn/urls.txt
#11 0.257 --2024-02-28 10:42:09-- http://dev.amihome.cn/urls.txt
#11 0.257 Resolving dev.amihome.cn (dev.amihome.cn)... 192.168.3.218
#11 0.261 Connecting to dev.amihome.cn (dev.amihome.cn)|192.168.3.218|:80... connected.
#11 0.262 HTTP request sent, awaiting response... 200 OK
#11 0.263 Length: 2585 (2.5K) [text/plain]
#11 0.263 Saving to: 'urls.txt'
#11 0.263
#11 0.263 0K .. 100% 5.88M=0s
#11 0.263
#11 0.263 2024-02-28 10:42:09 (5.88 MB/s) - 'urls.txt' saved [2585/2585]
#11 0.263
#11 0.272 2024-02-28 10:42:09 URL:http://dev.amihome.cn/Directory.Build.props [10138/10138] -> "Directory.Build.props" [1]
#11 0.280 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Account.props [122/122] -> "version-numbers/Directory.Build.Change.Account.props" [1]
#11 0.286 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Common.props [120/120] -> "version-numbers/Directory.Build.Change.Common.props" [1]
#11 0.293 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Config.props [120/120] -> "version-numbers/Directory.Build.Change.Config.props" [1]
#11 0.300 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Divination.props [128/128] -> "version-numbers/Directory.Build.Change.Divination.props" [1]
#11 0.306 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.SaasDbAccess.props [132/132] -> "version-numbers/Directory.Build.Change.SaasDbAccess.props" [1]
#11 0.313 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.LeptonC.props [122/122] -> "version-numbers/Directory.Build.Change.LeptonC.props" [1]
#11 0.319 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Rms.props [114/114] -> "version-numbers/Directory.Build.Change.Rms.props" [1]
#11 0.326 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.ToolKit.props [122/122] -> "version-numbers/Directory.Build.Change.ToolKit.props" [1]
#11 0.334 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Calendar.props [124/124] -> "version-numbers/Directory.Build.Change.Calendar.props" [1]
#11 0.345 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Brain.props [120/120] -> "version-numbers/Directory.Build.Change.Brain.props" [1]
#11 0.356 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Brain.Fengshui.props [137/137] -> "version-numbers/Directory.Build.Change.Brain.Fengshui.props" [1]
#11 0.362 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Brain.UI.props [124/124] -> "version-numbers/Directory.Build.Change.Brain.UI.props" [1]
#11 0.368 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Brain.Ziping.props [134/134] -> "version-numbers/Directory.Build.Change.Brain.Ziping.props" [1]
#11 0.375 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Brain.Lianshan.props [137/137] -> "version-numbers/Directory.Build.Change.Brain.Lianshan.props" [1]
#11 0.382 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Brain.Qimen.props [131/131] -> "version-numbers/Directory.Build.Change.Brain.Qimen.props" [1]
#11 0.390 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Brain.Zeri.props [129/129] -> "version-numbers/Directory.Build.Change.Brain.Zeri.props" [1]
#11 0.395 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Brain.Ziwei.props [131/131] -> "version-numbers/Directory.Build.Change.Brain.Ziwei.props" [1]
#11 0.401 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Yee.AspNetCore.props [123/123] -> "version-numbers/Directory.Build.Yee.AspNetCore.props" [1]
#11 0.409 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Yee.Cloud.props [113/113] -> "version-numbers/Directory.Build.Yee.Cloud.props" [1]
#11 0.417 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Yee.props [102/102] -> "version-numbers/Directory.Build.Yee.props" [1]
#11 0.428 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Yee.Utils.props [120/120] -> "version-numbers/Directory.Build.Yee.Utils.props" [1]
#11 0.437 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.AdminUI.props [122/122] -> "version-numbers/Directory.Build.Change.AdminUI.props" [1]
#11 0.448 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.EasyComment.props [132/132] -> "version-numbers/Directory.Build.Change.EasyComment.props" [1]
#11 0.461 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.EventRecorder.props [134/134] -> "version-numbers/Directory.Build.Change.EventRecorder.props" [1]
#11 0.475 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Shop.props [116/116] -> "version-numbers/Directory.Build.Change.Shop.props" [1]
#11 0.488 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.Pay.props [116/116] -> "version-numbers/Directory.Build.Change.Pay.props" [1]
#11 0.495 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.WeChatMp.props [124/124] -> "version-numbers/Directory.Build.Change.WeChatMp.props" [1]
#11 0.501 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.WeChatServices.props [135/135] -> "version-numbers/Directory.Build.Change.WeChatServices.props" [1]
#11 0.508 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.EasyAbp.Abp.WeChat.props [146/146] -> "version-numbers/Directory.Build.EasyAbp.Abp.WeChat.props" [1]
#11 0.513 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Myvas.QQConnect.props [123/123] -> "version-numbers/Directory.Build.Myvas.QQConnect.props" [1]
#11 0.520 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Myvas.Weixin.Mp.props [124/124] -> "version-numbers/Directory.Build.Myvas.Weixin.Mp.props" [1]
#11 0.528 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Myvas.Weixin.Open.props [127/127] -> "version-numbers/Directory.Build.Myvas.Weixin.Open.props" [1]
#11 0.538 2024-02-28 10:42:09 URL:http://dev.amihome.cn/version-numbers/Directory.Build.Change.FrontEnd.props [125/125] -> "version-numbers/Directory.Build.Change.FrontEnd.props" [1]
#11 DONE 0.6s
#12 [build 3/16] WORKDIR /src
#12 DONE 0.1s
#13 [build 4/16] COPY [NuGet.Config, .]
#13 DONE 0.0s
#14 [build 5/16] COPY [src/Yee.Change.PayPortal.Blazor/Yee.Change.PayPortal.Blazor.csproj, src/Yee.Change.PayPortal.Blazor/]
#14 DONE 0.0s
#15 [build 6/16] COPY [src/Yee.Change.PayPortal.Application/Yee.Change.PayPortal.Application.csproj, src/Yee.Change.PayPortal.Application/]
#15 DONE 0.0s
#16 [build 7/16] COPY [src/Yee.Change.PayPortal.Domain/Yee.Change.PayPortal.Domain.csproj, src/Yee.Change.PayPortal.Domain/]
#16 DONE 0.0s
#17 [build 8/16] COPY [src/Yee.Change.PayPortal.Domain.Shared/Yee.Change.PayPortal.Domain.Shared.csproj, src/Yee.Change.PayPortal.Domain.Shared/]
#17 DONE 0.0s
#18 [build 9/16] COPY [src/Yee.Change.PayPortal.Application.Contracts/Yee.Change.PayPortal.Application.Contracts.csproj, src/Yee.Change.PayPortal.Application.Contracts/]
#18 DONE 0.0s
#19 [build 10/16] COPY [src/Yee.Change.PayPortal.HttpApi/Yee.Change.PayPortal.HttpApi.csproj, src/Yee.Change.PayPortal.HttpApi/]
#19 DONE 0.0s
#20 [build 11/16] COPY [src/Yee.Change.PayPortal.EntityFrameworkCore/Yee.Change.PayPortal.EntityFrameworkCore.csproj, src/Yee.Change.PayPortal.EntityFrameworkCore/]
#20 DONE 0.1s
#21 [build 12/16] RUN dotnet restore "src/Yee.Change.PayPortal.Blazor/Yee.Change.PayPortal.Blazor.csproj"
#21 0.765 Determining projects to restore...
#21 40.55 Restored /src/src/Yee.Change.PayPortal.Domain.Shared/Yee.Change.PayPortal.Domain.Shared.csproj (in 38.72 sec).
#21 42.40 Restored /src/src/Yee.Change.PayPortal.Domain/Yee.Change.PayPortal.Domain.csproj (in 40.6 sec).
#21 42.43 Restored /src/src/Yee.Change.PayPortal.Application.Contracts/Yee.Change.PayPortal.Application.Contracts.csproj (in 40.63 sec).
#21 53.05 Restored /src/src/Yee.Change.PayPortal.HttpApi/Yee.Change.PayPortal.HttpApi.csproj (in 51.25 sec).
#21 55.45 Restored /src/src/Yee.Change.PayPortal.EntityFrameworkCore/Yee.Change.PayPortal.EntityFrameworkCore.csproj (in 53.65 sec).
#21 63.38 Restored /src/src/Yee.Change.PayPortal.Application/Yee.Change.PayPortal.Application.csproj (in 1.03 min).
#21 134.9 Restored /src/src/Yee.Change.PayPortal.Blazor/Yee.Change.PayPortal.Blazor.csproj (in 2.22 min).
#21 DONE 135.4s
#22 [build 13/16] COPY . .
#22 DONE 0.1s
#23 [build 14/16] WORKDIR /src/src/Yee.Change.PayPortal.Blazor
#23 DONE 0.0s
#24 [build 15/16] RUN dotnet build "Yee.Change.PayPortal.Blazor.csproj" -c Release -o /app/build
#24 0.383 MSBuild version 17.9.4+90725d08d for .NET
#24 1.190 Determining projects to restore...
#24 2.104 All projects are up-to-date for restore.
#24 4.088 Yee.Change.PayPortal.Domain.Shared -> /app/build/Yee.Change.PayPortal.Domain.Shared.dll
#24 4.347 Yee.Change.PayPortal.Application.Contracts -> /app/build/Yee.Change.PayPortal.Application.Contracts.dll
#24 5.164 Yee.Change.PayPortal.HttpApi -> /app/build/Yee.Change.PayPortal.HttpApi.dll
#24 5.175 Yee.Change.PayPortal.Domain -> /app/build/Yee.Change.PayPortal.Domain.dll
#24 5.593 Yee.Change.PayPortal.Application -> /app/build/Yee.Change.PayPortal.Application.dll
#24 5.657 Yee.Change.PayPortal.EntityFrameworkCore -> /app/build/Yee.Change.PayPortal.EntityFrameworkCore.dll
#24 11.23 Yee.Change.PayPortal.Blazor -> /app/build/Yee.Change.PayPortal.Blazor.dll
#24 11.25
#24 11.25 Build succeeded.
#24 11.26 0 Warning(s)
#24 11.26 0 Error(s)
#24 11.26
#24 11.26 Time Elapsed 00:00:10.80
#24 DONE 11.4s
#25 [publish 1/1] RUN dotnet publish "Yee.Change.PayPortal.Blazor.csproj" -c Release -o /app/publish /p:UseAppHost=false
#25 0.430 MSBuild version 17.9.4+90725d08d for .NET
#25 1.204 Determining projects to restore...
#25 1.901 All projects are up-to-date for restore.
#25 2.985 Yee.Change.PayPortal.Domain.Shared -> /src/src/Yee.Change.PayPortal.Domain.Shared/bin/Release/netstandard2.0/Yee.Change.PayPortal.Domain.Shared.dll
#25 3.997 Yee.Change.PayPortal.Application.Contracts -> /src/src/Yee.Change.PayPortal.Application.Contracts/bin/Release/netstandard2.0/Yee.Change.PayPortal.Application.Contracts.dll
#25 4.301 Yee.Change.PayPortal.Domain -> /src/src/Yee.Change.PayPortal.Domain/bin/Release/net8.0/Yee.Change.PayPortal.Domain.dll
#25 4.578 Yee.Change.PayPortal.HttpApi -> /src/src/Yee.Change.PayPortal.HttpApi/bin/Release/net8.0/Yee.Change.PayPortal.HttpApi.dll
#25 4.768 Yee.Change.PayPortal.Application -> /src/src/Yee.Change.PayPortal.Application/bin/Release/net8.0/Yee.Change.PayPortal.Application.dll
#25 4.828 Yee.Change.PayPortal.EntityFrameworkCore -> /src/src/Yee.Change.PayPortal.EntityFrameworkCore/bin/Release/net8.0/Yee.Change.PayPortal.EntityFrameworkCore.dll
#25 9.141 Yee.Change.PayPortal.Blazor -> /src/src/Yee.Change.PayPortal.Blazor/bin/Release/net8.0/Yee.Change.PayPortal.Blazor.dll
#25 10.49 Yee.Change.PayPortal.Blazor -> /app/publish/
#25 DONE 10.6s
#26 [final 2/4] COPY --from=publish /app/publish .
#26 DONE 0.4s
#27 [final 3/4] RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#27 DONE 0.2s
#28 [final 4/4] RUN echo 'Asia/Shanghai' >/etc/timezone
#28 DONE 0.5s
#29 exporting to image
#29 exporting layers
#29 exporting layers 1.1s done
#29 writing image sha256:18ea057d17482baf3638f9f0fcf91b164cb93a1cb87382befbb0fc6c6b8b583d done
#29 naming to docker.amicap.cn/change/pay:14501 0.0s done
#29 DONE 1.1s
$ docker push $FRONT_API_REPO:$PAY_PORTAL_IMAGE_TAG
The push refers to repository [docker.amicap.cn/change/pay]
a570bc7b0595: Preparing
4eca3a93fea4: Preparing
da9fe53908d2: Preparing
5f70bf18a086: Preparing
fca4cba553fe: Preparing
828e2dabde3f: Preparing
6e906a70a066: Preparing
82cc5cf93bd2: Preparing
93287e66966f: Preparing
4b703ea23cb9: Preparing
7292cf786aa8: Preparing
828e2dabde3f: Waiting
6e906a70a066: Waiting
82cc5cf93bd2: Waiting
93287e66966f: Waiting
4b703ea23cb9: Waiting
7292cf786aa8: Waiting
5f70bf18a086: Layer already exists
fca4cba553fe: Layer already exists
828e2dabde3f: Layer already exists
6e906a70a066: Layer already exists
82cc5cf93bd2: Layer already exists
93287e66966f: Layer already exists
4b703ea23cb9: Layer already exists
4eca3a93fea4: Pushed
7292cf786aa8: Layer already exists
a570bc7b0595: Pushed
da9fe53908d2: Pushed
14501: digest: sha256:63e7771e2f4f1562e2c4853bfd5a0c57871af82e6f71a84298ebfb4c3ae14425 size: 2618
Saving cache for successful job 00:01
Creating cache default-protected...
WARNING: node_modules/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/rzPy7M6hB/0/abp7/pay-portal)
Archive is up to date!
Created cache
Cleaning up project directory and file based variables 00:01
Job succeeded
docker-run-on-local-app-server的输出如下
Running with gitlab-runner 16.9.0 (656c1943)
on 春漫里2号大力士 oEbtvPUXD, system ID: r_aAMlDtmiasEr
Preparing the "docker" executor 00:01
Using Docker executor with image docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0:20240227014 ...
Authenticating with credentials from $DOCKER_AUTH_CONFIG
Pulling docker image docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0:20240227014 ...
Using docker image sha256:401be2ca165ffb3ef00c3e2bd172645dca0836969eadb800b60da3c5f20123c3 for docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0:20240227014 with digest docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0@sha256:899a45e25d3a397672c30c30bbdfc6719e80d706b24c2fa6265b413ab6ec85c7 ...
Preparing environment 00:00
Running on runner-oebtvpuxd-project-37-concurrent-0 via 7171ce851b00...
Getting source from Git repository 00:01
Fetching changes with git depth set to 20...
Reinitialized existing Git repository in /builds/oEbtvPUXD/0/abp7/pay-portal/.git/
Checking out 4301a757 as detached HEAD (ref is master)...
Skipping Git submodules setup
Restoring cache 00:01
Checking cache for default-protected...
No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted.
Successfully extracted cache
Executing "step_script" stage of the job script 00:01
Using docker image sha256:401be2ca165ffb3ef00c3e2bd172645dca0836969eadb800b60da3c5f20123c3 for docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0:20240227014 with digest docker.amicap.cn/amihome/gitlab/docker-linux-dotnet8.0@sha256:899a45e25d3a397672c30c30bbdfc6719e80d706b24c2fa6265b413ab6ec85c7 ...
$ echo "部署到支付网关测试站……"
部署到支付网关测试站……
$ bash "/home/public/ssh-to-app-server-docker-run.sh" pay_test 58003 8080 $FRONT_API_REPO:$PAY_PORTAL_IMAGE_TAG amisoft $DOCKER_REGISTRY_DNS_NAME $DOCKER_LOGIN_USER $DOCKER_LOGIN_PASSWORD $SSH_AUTO_LOGIN_USER $APP_SERVER
docker容器实例名称: pay_test
目标服务器对外端口号 58003
docker容器开放端口号 8080
docker镜像URL docker.amicap.cn/change/pay:14501
容器启动配置环境 amisoft
Docker服务器DNS名称 docker.amicap.cn
登入Docker服务器的用户名称 david
登入Docker服务器的密码 NXbdusoeiu*2349243_ded
SSH自动登入目标服务器使用的用户名 david
SSH自动登入的目标服务器 192.168.3.201
在服务器上执行的命令是
docker run -d --privileged=true --restart=always -d --name pay_test -v /mnt/data/yee-change:/var/config -e ASPNETCORE_ENVIRONMENT=amisoft -p 58003:8080 docker.amicap.cn/change/pay:14501
Pseudo-terminal will not be allocated because stdin is not a terminal.
Host key verification failed.
734e7beae631
734e7beae631
Untagged: docker.amicap.cn/change/pay:14501
Untagged: docker.amicap.cn/change/pay@sha256:63e7771e2f4f1562e2c4853bfd5a0c57871af82e6f71a84298ebfb4c3ae14425
Deleted: sha256:18ea057d17482baf3638f9f0fcf91b164cb93a1cb87382befbb0fc6c6b8b583d
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Unable to find image 'docker.amicap.cn/change/pay:14501' locally
14501: Pulling from change/pay
af107e978371: Already exists
1b4797dcb4fc: Already exists
c044f7351ca2: Already exists
5eb35267f5cb: Already exists
8927932ecf48: Already exists
11c57fbb3977: Already exists
325935882b12: Already exists
4f4fb700ef54: Already exists
e5298dd679e6: Already exists
3512db053162: Already exists
ef88c93916ce: Already exists
Digest: sha256:63e7771e2f4f1562e2c4853bfd5a0c57871af82e6f71a84298ebfb4c3ae14425
Status: Downloaded newer image for docker.amicap.cn/change/pay:14501
5e2494bda111ad7636b56ddd2c5a016ae103e787c21e95e65aedef7c07fb0388
Saving cache for successful job 00:00
Creating cache default-protected...
WARNING: node_modules/: no matching files. Ensure that the artifact path is relative to the working directory (/builds/oEbtvPUXD/0/abp7/pay-portal)
Archive is up to date!
Created cache
Cleaning up project directory and file based variables 00:01
Job succeeded
用Docker发布网站时,自动下载Directory.Build.props及其Import的文件的更多相关文章
- asp.net core项目发布网站时的选项
发布网站时的选项 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序. Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的, ...
- VS2010 发布网站时如何使DLL文件名固定
VS在发布网站时,bin目录里为所有cs生成的dll文件每次都是随机命名的,如:App_Web_xxxxxxxx.dll(xxxxxxx是8个小写的字母和数字组成的字符串,随机的),这样对更新 Liv ...
- VS2010 发布网站时文件丢失
问题:使用VS发布网站时,发现一些Flv等文件丢失,没有发布到指定文件夹中. 解决办法:打开文件属性窗口,找到生成操作,选项选择“内容”即可. 详细内容可参考官方文档: http://msdn.m ...
- DEDECMS织梦全站动态化访问(包括自由列表freelist)及发布内容时自动动态化设置
DEDECMS织梦 - 全站已有内容全部设置为动态化访问(包括自由列表freelist),以及发布内容时自动为动态化,设置分为三个步骤: 1.将所有文档设置为“仅动态”:执行以下mysql语句:upd ...
- VS2010 发布网站时文件丢失解决办法
网站项目中包含了一写rdlc的东西,发布网站选择仅限运行此应用程序所需文件,发布成功后发现这两个文件夹都没发布出来,找了下原因,解决办法是选择文件打开属性窗口找到生成操作,选项选择“内容”,重新发布, ...
- 安装Ruby、Sass在WebStrom添加Watcher实现编辑scss文件时自动生成.map和压缩后的.css文件
前言 这段时间一直在看Bootstrap,V3官方直接提供了Less版本的源码,就先将Less学完了,很简单的语法,学习写Demo都是在Webstorm里写的,配置了Watcher自动编译(详见< ...
- Roslyn 使用 Directory.Build.props 管理多个项目配置
在一些大项目需要很多独立的仓库来做,每个仓库之间都会有很多相同的配置,本文告诉大家如何通过 Directory.Build.props 管理多个项目配置 在我的 MVVM 框架需要三个不同的库,一个是 ...
- 使用MSBuild Tools调用csproj项目文件发布网站时$(SolutionDir)宏参数值丢失为空的解决方案
使用Visual Studio打开解决方案,对<网站项目>右键点击<发布>,一切都是正常的,所有宏都可用,宏参数值也是正确的. 而通过批处理脚本命令调用MSBuild.exe对 ...
- VS编译时自动下载NuGet管理的库
之前一直使用NuGet来管理一些第三方的库,但是每次check in代码时候为了保证编译通过,都需要把对应的packages check in. 比较耗费时间,特别是往github上同步代码,而且这些 ...
- VS发布网站时,报错提示:“未能将文件xxx复制到xxx,未能找到文件xx”三种解决方案!
发布网站时候大家可能会遇到这样的情况,就是报错提示说:“未能将文件xxx复制到xxx,未能找到文件xx”,这个问题一般来说有三种解决方案,个人倾向第三种,如图: 解决方案如下: 方案一.把系统提示缺失 ...
随机推荐
- zabbix监控进程和监控日志
zabbix监控进程和监控日志 文章目录 zabbix监控进程和监控日志 一.自定义监控进程 1.新建脚本存放目录 2.修改zabbix_agentd.conf文件 3.zabbix server端进 ...
- centos8上安装中文字符集
https://www.cnblogs.com/kaishirenshi/p/12669353.html yum install glibc-common yum install -y langpac ...
- 冷备PG数据库并且直接使用Docker运行的方法
PG数据库冷备以及使用Docker恢复运行的方法 总结: Docker运行命令 docker run -d --name postgres5433 --restart always -e POSTGR ...
- 全球 IPv4 耗尽,下个月开始收费!
哈喽大家好,我是咸鱼 IPv4(Internet Protocol version 4)是互联网上使用最广泛的网络层协议之一,于1981年在 RFC 791 中发布,它定义了 32 位的IP地址结构和 ...
- echarts去掉y轴线、设置x轴线的颜色、x轴文字颜色
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- cookie的设置读取
<script> // 设置cookie值哈 let username = '我是cookie' document.cookie = "name=" + usernam ...
- 复原docker中容器的启动命令
复原 docker 容器的启动命令 前言 查看 docker 容器的启动命令 参考 复原 docker 容器的启动命令 前言 不规范的操作,在启动 docker 容器,没有留命令脚本,或者没有使用 d ...
- 火遍外网的Keychron测评,带你入坑;ps马上5.20了送一个给你的心爱的她/他。
那些年用过的机械键盘 如果你经常上YouTube或Instagram,然后你又对键盘感兴趣,我相信你肯定看到过他--Keychron K2,他真的是一款曝光量很高的键盘. 1.键盘keychron k ...
- 8.6 C++ 泛型化编程态
C/C++语言是一种通用的编程语言,具有高效.灵活和可移植等特点.C语言主要用于系统编程,如操作系统.编译器.数据库等:C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统.图形用户界面 ...
- ElasticSearch-聚合、自动补全、集群、数据同步
数据聚合 1.数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计.分析.运算.例如: 什么品牌的手机最受欢迎? 这些手机的平均价格.最高价格.最低价格? 这些手机每月的销售 ...