首页 > 解决方案 > Cloud Run 错误:容器无法启动。启动失败,然后监听端口

问题描述

我已经完全按照我认为应该做的那样做。如果我在云上运行它,我的应用程序就可以工作。我运行的命令: gcloud builds submit --tag gcr.io/****
gcloud run deploy *** --region us-central1 --platform managed --image gcr.io/t*** --allow-未经身份验证--port=26951

Dockerfile:

FROM mcr.microsoft.com/dotnet/sdk

COPY . /app

WORKDIR /app

RUN dotnet publish -c Release -o out

ENTRYPOINT ["dotnet", "Test.dll"]

程序:

using System;
using System.IO;
using System.Net;
using System.Net.Sockets;


namespace Server
{
    class Program
    {
        private static TcpListener tcpListener;
        public static void Main(string[] args)
        {
            
            tcpListener = new TcpListener(IPAddress.Any, 26951);
   
            tcpListener.Start();
         
            tcpListener.BeginAcceptTcpClient(TCPConnectCallback, null);
           
        }
        private static void TCPConnectCallback(IAsyncResult _result)
        {
            TcpClient _client = tcpListener.EndAcceptTcpClient(_result);
        }
    }
}

CSProj:

<Project Sdk="***">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

</Project>

所有这些都在同一个位置

标签: c#dockergoogle-cloud-platform

解决方案


解决方案是像这样更改 dockerfile:

FROM mcr.microsoft.com/dotnet/sdk:3.1 WORKDIR /app

COPY . .

ENTRYPOINT ["dotnet", "run"]

推荐阅读