尝试将 dotnet 8 Web 应用程序部署到 gcloud 应用程序引擎 flex 时出现问题

问题描述 投票:0回答:1

我不久前一直在 dotnetcore 3.1 上的遗留项目中使用

gcloud app deploy
。不得不回到这个项目,并将项目升级到
dotnet 8
后,我无法再部署它。

前一组动作是:

  1. dotnet publish "./SolutionName/Project.Public/Project.Public.csproj" -o "publish-api/" -c Release

    • 这将创建一个发布文件夹
  2. cp app-api.yaml ./publish-api/

    • 将 yaml 复制到发布文件夹
  3. 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

热烈欢迎提示或建议。

.net google-app-engine gcloud
1个回答
0
投票

问题在于部署工具不了解如何处理已发布的文件。

添加了下一个到

app.yaml
以帮助该过程:

entrypoint: "dotnet Project.Public.API.dll"  # the main/starting dll 
© www.soinside.com 2019 - 2024. All rights reserved.