在 ASP.NET Core 中构建 docker:“没有这样的文件或目录”错误

2024-03-25

我在构建 docker 时遇到错误。

Sending build context to Docker daemon 3.584 kB
Step 1/8 : FROM microsoft/aspnetcore:1.1
 ---> 2628aaa7b8cf
Step 2/8 : ENV ASPNETCORE_URLS "http://*:5000"
 ---> Using cache
 ---> 5dffde204fef
Step 3/8 : ENV ASPNETCORE_ENVIRONMENT "Development"
 ---> Using cache
 ---> 3064358bc0eb
Step 4/8 : ARG source
 ---> Using cache
 ---> 4159d0eb78c0
Step 5/8 : WORKDIR /app
 ---> Using cache
 ---> 61a394c84304
Step 6/8 : EXPOSE 5000
 ---> Using cache
 ---> c7c2309f7085
Step 7/8 : COPY ${source:-obj/Docker/publish} .
lstat obj/Docker/publish: no such file or directory

这是我的 Dockerfile。

FROM microsoft/aspnetcore:1.1
ENV ASPNETCORE_URLS="http://*:5000"
ENV ASPNETCORE_ENVIRONMENT="Development"
ARG source
WORKDIR /app
EXPOSE 5000
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "ProjectTestApi.dll"

我运行一个命令:

$ docker build -t my-docker-image-test .

你知道出了什么问题吗?


发生这种情况是因为您没有发布解决方案。错误消息是不言自明的:

no such file or directory

默认情况下,当您添加Docker 支持对于 ASP.NET Core Visual Studio 2017 项目,它创建了一堆docker-compose.yml文件,其中之一是docker-compose.ci.build.yml它处理构建过程。然后,当您通过 Visual Studio 构建项目时,完整的docker-compose管道被执行。

的内容docker-compose.ci.build.yml,与此类似(这显然取决于自定义配置和项目名称):

version: '2'

services:
  ci-build:
    image: microsoft/aspnetcore-build:1.0-1.1
    volumes:
      - .:/src
    working_dir: /src
    command: /bin/bash -c "dotnet restore ./SolutionName.sln && dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish"

正如你在最后一行看到的,有一个dotnet publish调用的命令,实际上会构建并发布您的项目。

So the 您的问题的解决方案,将在调用 docker 之前构建项目:

dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish
docker build -t my-docker-image-test .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP.NET Core 中构建 docker:“没有这样的文件或目录”错误 的相关文章

随机推荐