【发布时间】:2021-06-23 16:21:52
【问题描述】:
我正在尝试使用 Visual Studio 插件将 Asp.net core 5 应用程序发布到谷歌云。
app.yaml
runtime: custom
env: flex
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
Docker 文件
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build-env /app/out .
EXPOSE 8080
ENV ASPNETCORE_URLS=http://*:8080
ENTRYPOINT ["dotnet", "Falcon-Identity.dll"]
当我从上下文菜单使用发布到谷歌云发布时,出现以下异常
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(1,23): error CS1003: Syntax error, '(' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(1,23): error CS1001: Identifier expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(1,30): error CS1001: Identifier expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(1,30): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(1,31): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(1,37): error CS1001: Identifier expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(1,37): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(1,41): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(2,9): error CS1001: Identifier expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(2,9): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(2,10): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(3,3): error CS1024: Preprocessor directive expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(4,6): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(4,8): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(4,16): error CS1001: Identifier expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(4,16): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(4,17): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(5,12): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(6,3): error CS1024: Preprocessor directive expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(7,6): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(7,10): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(8,12): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(8,20): error CS1001: Identifier expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(8,20): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(8,21): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(8,31): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(8,32): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(8,34): error CS1001: Identifier expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(8,34): error CS1003: Syntax error, ',' expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(9,3): error CS1024: Preprocessor directive expected [C:\Projects\falcon-identity\Falcon-Identity\Falcon-Identity.csproj]
C:\Projects\falcon-identity\Falcon-Identity\Dockerfile(10,9): error CS1003: Syntax error, ',' e
【问题讨论】:
-
你可以在本地运行容器镜像没有问题,即
(PORT=8080 && docker run --interactive --tty --rm --env=PORT=${PORT} --publish=${PORT}:${PORT} your-image吗? -
Flex(如 Cloud Run)本质上是一个容器运行器,因此,如果容器运行(在其他地方),它应该可以运行,例如应用引擎。 “本质上”是因为端口
8080对服务和 Google 沙盒运行时都至关重要,因此保真度可能低于 100%。 -
我正在复制一个基本的 ASP.NET 示例,我认为您遇到的问题是设置
ENV ASPNETCORE_URL。在我更简单的示例中,如果我使用ENTRYPOINT ["dotnet", "run", "--urls=http://+:8080"],我可以访问:8080上的服务器 -
项目是否在 Docker 之外本地构建?容器是否在本地构建?在我看来,有些东西正在尝试将您的
dockerfile构建为应用程序代码。 -
@DanielMann 是的项目构建,没有 docker
标签: c# asp.net asp.net-core google-cloud-platform gcloud