我不久前一直在 dotnetcore 3.1 上的遗留项目中使用
gcloud app deploy
。不得不回到这个项目,并将项目升级到dotnet 8
后,我无法再部署它。
前一组动作是:
dotnet publish "./SolutionName/Project.Public/Project.Public.csproj" -o "publish-api/" -c Release
cp app-api.yaml ./publish-api/
gcloud app deploy ./publish-api/app-api.yaml --version=1.1
Step #2 - "build": ERROR: No buildpack groups passed detection.
Step #2 - "build": ERROR: Please check that you are running against the correct path.
Step #2 - "build": ERROR: failed to detect: no buildpacks participating
我可能错过了一些简单的东西?我是否应该无法从
dotnet
已发布文件夹进行部署?
如果我尝试仅从该解决方案中的项目内进行部署,它会在构建中进一步进行,但它也会因下一个错误而失败(由于某种原因,它无法找到位于该解决方案中的引用项目):
Step #2 - "build": Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
Step #2 - "build": --------------------------------------------------------------------------------------
Step #2 - "build": Determining projects to restore...
Step #2 - "build": Skipping project "/API.Common/API.Common.csproj" because it was not found.
Step #2 - "build": Skipping project "/API.Common/API.Common.csproj" because it was not found.
Step #2 - "build": Restored /workspace/API.csproj (in 10.28 sec).
我尝试使用我的
app.yaml
部署一个简单的 HelloWorld,其中仅包含一个项目,并且效果很好。然而,在多项目解决方案中,它找不到引用的项目。
为了完整,这是我的部署
yaml
:
runtime: aspnetcore
env: flex
service: default
runtime_config:
operating_system: ubuntu22
automatic_scaling:
min_num_instances: 1
cpu_utilization:
target_utilization: 0.75
liveness_check:
path: "/health"
check_interval_sec: 30
timeout_sec: 4
failure_threshold: 4
success_threshold: 2
resources:
cpu: 1
memory_gb: 1
disk_size_gb: 10
env_variables:
GCLOUD_PROJECT_ID: proj-id
热烈欢迎提示或建议。
问题在于部署工具不了解如何处理已发布的文件。
添加了下一个到
app.yaml
以帮助该过程:
entrypoint: "dotnet Project.Public.API.dll" # the main/starting dll