首页 > 解决方案 > Docker:无法使用 docker-compose 运行 .net core api:退出代码 145

问题描述

我正在尝试在 docker 容器中运行 .net core api,但出现以下错误: 在此处输入图像描述

我对错误的第一个猜测是因为它无法找到 .net core sdk。但正如你所见,我在 dockerfile 中包含了 sdk: FROM mcr.microsoft.com/dotnet/core/aspnet:2.2

Dockerfile

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
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/core/aspnet:2.2
EXPOSE 80/tcp

WORKDIR /app
COPY --from=build-env /app/out .

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

码头工人-compose.yml

version: '3'
services:
  coreapi:    
    build: 
      context: .
      dockerfile: Dockerfile      
    ports:
      - "4002:5000"
    volumes:
      - .:/app

标签: .netdockerasp.net-coredocker-composeyaml

解决方案


好的,我通过删除解决了:

  volumes:
      - .:/app

来自我的 docker-compose.yml:

version: '3'
services:
  coreapi:    
    build: 
      context: .
      dockerfile: Dockerfile      
    ports:
      - "4002:5000"        

我想问题是我用我的 dockerfile 构建代码但是在 docker compose 中我基本上是说我想在外面使用我的源代码来使用。它可能在 nodejs 中工作,但我不确定如何使用预构建的 .net 代码作为卷。


推荐阅读