当前位置: 首页 > 面试题库 >

在ASP.NET Core中构建docker:“无此文件或目录”错误

葛成双
2023-03-14
问题内容

构建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

默认情况下,当您向ASP.NET Core Visual Studio 2017项目添加 Docker支持 时,它将创建一堆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命令被调用,它实际上是在构建和发布您的项目。

因此, 针对您的问题解决方案 将只是在调用docker之前构建项目:

dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish
docker build -t my-docker-image-test .


 类似资料:
  • 我正在使用mysql/mysql-server映像在docker中创建一个mysql服务器。因为我想自动设置我的数据库(添加用户、创建表),所以我创建了一个SQL文件来完成这个任务。为了自动运行该脚本,我使用这个dockerfile扩展了映像: 但出于某种原因,这种情况会发生: 如何修复此问题?

  • 问题内容: 我在Ubuntu 9.10 x86_64上安装了二进制Linux应用程序。该应用程序附带了旧版本的gzip(1.2.4),该版本已针对较旧的内核进行了编译: 我无法执行该程序。如果我尝试过,就会发生这种情况: ldd同样对此二进制文件不满意: 我很好奇:此问题最可能的根源是什么?文件损坏了吗?还是由于为较旧的{kernel,libc,…}构建而导致二进制不兼容? Per nos的建议,

  • 错误:命令出错,退出状态为1:Command:/usr/local/bin/python-u-c'import sys,setuptools,tokenize;系统。argv[0]=“””/tmp/pip-install-oho_tlt5/dlib/setup。py''';文件=“””/tmp/pip-install-oho_tlt5/dlib/setup。py''';f=getattr(标记化,

  • 问题内容: 我正在尝试将数据加载到我的MySQL数据库的表中,并得到此错误。 参考:此 路径是正确的百分率,我通过按shift键并单击“将路径复制为”将其复制并进行了多次检查。 因此,对此的任何提示将不胜感激 。 其次, 这里有没有办法使用某种相对路径(而不是绝对路径)? 问题答案: 我不知道您使用的是哪个版本的MySQL,但通过Google的快速搜索找到了您对这两个问题的可能答案。以下是《MyS

  • 问题内容: 我正在对GitHub上的此示例Angular2应用进行较小的修改,以使其使用Express.js而不是KOA。但是目前,当我尝试在FireFox中加载应用程序时,控制台中会显示以下错误: 当http请求触发路由器处理程序并返回时,Angular2应用程序开始加载,该处理程序返回,然后触发一系列嵌套依赖项的回调,其中一个引发错误并中途停止应用程序加载。 为了解决GitHub示例中的代码需

  • 问题内容: 我无法弄清楚这里出了什么问题…我试图更简洁地写这篇文章,但没有用。阅读有关此问题的其他建议后,我输入了所有额外的字符串。没有帮助。不知道发生了什么事。可能与权限相关吗?AFAIK我正在尝试写入内部存储器,并且不需要特殊权限? 每次,目录未完成或出现某种情况时,它都会“制作目录”。当到达myFile.createNewFile();时 它给出错误信息“打开失败:ENOENT(没有这样的文