Docker 出现错误“无法计算缓存密钥:未找到” - 在 Visual Studio 中运行正常

2023-12-13

我使用 Visual Studio 生成了一个 Dockerfile。它在 Visual Studio 中运行得很好,现在我正在尝试从 Windows 本身构建它(docker build .,并且我尝试了很多组合)。但我收到以下错误:

> [build 3/7] COPY [client/client.csproj, client/]:
------
failed to compute cache key: "/client/client.csproj" not found: not found

当我将副本更改为./client.csproj它确实继续,然后我得到:

 => ERROR [build 7/7] RUN dotnet build "client.csproj" -c Release -o /app/build                3.3s
------
> [build 7/7] RUN dotnet build "client.csproj" -c Release -o /app/build:
#15 0.652 Microsoft (R) Build Engine version 16.8.3+39993d9d for .NET
#15 0.652 Copyright (C) Microsoft Corporation. All rights reserved.
#15 0.652
#15 1.169   Determining projects to restore...
#15 1.483   All projects are up-to-date for restore.
#15 3.231 CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/client/client.csproj]
#15 3.240
#15 3.240 Build FAILED.
#15 3.240
#15 3.240 CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/client/client.csproj]
#15 3.240     0 Warning (5)
#15 3.240     1 Error (5)
#15 3.240
#15 3.240 Time Elapsed 00:00:02.51
-----
executor failed running [/bin/sh -c dotnet build "client.csproj" -c Release -o /app/build]: exit code: 1

我究竟做错了什么?我把 Docker Linux 改成了 Windows,改了WSL,并重新启动一切。

#See https://aka.ms/containerfastmode to understand how Visua...

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["client/client.csproj", "client/"]
RUN dotnet restore "client/client.csproj"
COPY . .
WORKDIR "/src/client"
RUN dotnet build "client.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "client.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet', "client.dll"]

检查你的.dockerignore文件。它可能会忽略复制命令所需的文件,并且您会出现无法计算缓存密钥错误。

.dockerignore为了性能和安全性,可以配置为最小化发送到 docker 的文件:

* 
!dist/

第一行*禁止所有文件。第二行!dist/允许dist folder

这可能会导致意外行为:

FROM nginx:latest

# Fails because of * in .dockerignore
# failed to compute cache key: "/nginx.conf.spa" not found: not found
# Fix by adding `!nginx.conf.spa`  to .dockerignore
COPY nginx.conf.spa /etc/nginx/nginx.conf

RUN mkdir /app

# Works because of !dist/ in .dockerignore
COPY dist/spa /app

腰带和吊带。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 出现错误“无法计算缓存密钥:未找到” - 在 Visual Studio 中运行正常 的相关文章

  • 如何在 C# 中播放在线资源中的 .mp3 文件?

    我的问题与此非常相似question https stackoverflow com questions 7556672 mp3 play from stream on c sharp 我有音乐网址 网址如http site com aud
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • ARM 的内核 Oops 页面错误错误代码

    Oops 之后的错误代码给出了有关 ARM EX 中的恐慌的信息 Oops 17 1 PREEMPT SMP在这种情况下 17 给出了信息 在 x86 中它代表 bit 0 0 no page found 1 protection faul
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 修改 ADW Android 启动器?

    我想更改和修改开源 ADW 启动器 启动器可在此处获取 https github com AnderWeb android packages apps Launcher https github com AnderWeb android p
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp
  • 期望最大化算法的数值示例[重复]

    这个问题在这里已经有答案了 由于我不确定给出的公式 有人可以提供 EM 算法的简单数字示例吗 一个非常简单的具有 4 或 5 个笛卡尔坐标的坐标就可以了 那这个呢 http en wikibooks org wiki Data Mining
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth
  • Rails 7 缺失部分

    我正在升级到 Rails 7 1 并在使用 JS 部分的视图中遇到奇怪的错误 缺少部分 account stripe js erb application stripe js erb 与 locale gt fr formats gt ht
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co
  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt
  • 绘制大位图时 nSyncAndDrawFrame 速度极慢

    我想用多个大位图优化视差滚动视图 在我的 Nexus 5 上 一切都很顺利 Traceview 转储如下所示 doFrame 方法大约需要 18 毫秒才能完成 但是 当使用我的 Nexus 7 或 Android 6 模拟器 Genymot
  • 如何为React hooks(useState等)做流类型注解?

    我们应该如何将 Flow 类型注释与 React hooks 一起使用 例如useState 我尝试寻找一些如何实施它们的示例 但找不到任何东西 我试过这个 const allResultsVisible setAllResultsVisi
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束
  • 与文件名中的冒号“:”作斗争

    我有以下代码 用于加载大量 csv gz 并将它们转储到其他文件夹中 并将源文件名作为一列 object DailyMerger extends App def allFiles path File List File val parts
  • 无法在 Windows 10 上构建 Detectron2

    尽管 Windows 上的 Detectron2 没有官方支持 但有很多可用的说明 我尝试按照这些说明进行操作 但最终出现了相同的错误 这是我的设置 OS Windows 10 专业版 19043 1466 微软视觉工作室 2019 CUD

随机推荐

  • Nsight 远程调试器设置

    我正在尝试设置远程 Nsight v2 2 调试器 仅用于 GPU 调试 无 CUDA 我已经关注了这个英伟达 pdf用于设置远程目标机器和开发机器 一切都已启动并正在运行 但两者之间的通信不正常 我收到诸如 MSVSMON exe 未在远
  • 在 mailto 正文中插入换行符

    我想在我的 mailto 正文中插入换行符 我尝试了 0A 0D 和 0D 0A 没有什么对我有用 我在 Mac OSX 上使用 Google Chrome 测试了 Gmail Yahoo Apple Mail Outlook 2010 O
  • 在 D3 中换行文本

    我想让文本绕在下面的 D3 树上 这样就可以了 Foo is not a long word 每行都换行为 Foo is not a long word 我尝试将文本设置为 foreignObject 而不是文本对象 文本确实会换行 但它不
  • 使用未修饰的窗口启动 Tkinter

    使用 Python 2 和 Tkinter 如何在窗口上方没有标题栏的情况下启动 Tk 窗口 from Tkinter import root Tk frame Frame root frame pack bottomframe Frame
  • 使用 typescript 导入外部 javascript 的最佳方法

    目前 如果我想将外部代码加载到我的打字稿文件中 我有两种不同的方法 如果我引用另一个打字稿文件 我必须写 import object require path to the internal module 但如果我从现有的 js 文件加载代
  • 具有自定义 HTTP 和 ConfigService 的循环依赖的 DI

    我正在尝试实现 ConfigService 来检索项目中正确环境的正确配置 我目前遇到了循环依赖 index 28 Error SystemJS Provider parse errors Cannot instantiate cyclic
  • 查看 Node.js String.prototype 的方法?

    在 Node js REPL 中 如果您输入String prototype 一个空对象 被返回 但是 如果您在 Chrome JavaScript 控制台中键入它 则会返回一个带有预期函数名称和功能的对象 为什么 Node js 没有表现
  • 启动项目时出现无法理解的错误(gradle)

    我连接了一个库compile com balancedpayments balancedpayments 1 4 去项目时没有错误 但是当我尝试运行时 我看到错误 Executing tasks app assembleDebug Conf
  • PHP header() 不起作用

    有人知道为什么我的 header 不重定向吗 我的脚本的最后一部分是 header location test php die died 它写道 died 它应该在死亡之前重定向 但它没有 你有什么想法吗 您可能正在调用 header af
  • JSONB sqlalchemy 聚合函数

    使用 SQLAlchemy 我想重现可用的聚合函数来自子查询的 jsonb object aggsq objects from sqlalchemy import select func s select sq objects c obje
  • 为什么将 html 代码打印为字符串会给出十六进制数字作为 python 中的输出?

    我写了一个Python代码来修改我的html内容 但是在再次将其写入 html 文件时 我得到了奇怪的十六进制数字 import re search www abc com description blah blah f open myht
  • 将三个js的IIFE函数转换为es6?

    我正在尝试将我的 Threejs 项目分解为更小的模块 但我遇到了困难 以这个函数为例 var updateCamera function var euler new THREE Euler 0 0 0 YXZ return functio
  • Python删除组合字典列表中的重复值

    我需要一点家庭作业帮助 我必须编写一个将多个字典组合成新字典的函数 如果某个键出现多次 新字典中与该键对应的值应该是唯一的列表 作为一个例子 这是我到目前为止所拥有的 f a apple c cat b bat d dog g c car
  • 如何使用make_cudaExtent正确定义cudaExtent?

    我想在 CUDA 中有一个 3d 浮点数组 这是我的代码 define SIZE X 128 numbers in elements define SIZE Y 128 define SIZE Z 128 typedef float Vol
  • 忍者绑定

    如何将我的接口绑定到不同程序集中的具体类 我的解决方案中有以下项目 Foo DataFoo 域名 在 Structure Map 中 我将两个程序集名称添加到 StructureMap config 文件中 然后使用 PluginFamil
  • 可以在导航选项中使用 navigation.toggleDrawer()

    在我的导航文件中 当我想切换抽屉时 出现以下错误 类型错误 navigation openDrawer 不是一个函数 在 navigation openDrawer navigation openDrawer 未定义 这是我的抽屉 cons
  • Laravel:preg_replace():参数不匹配,模式是字符串,而替换是数组

    我想将结果保存在数据库中 但出现错误异常 在我看来 我有一个单选按钮 数组 它可以获取每个学生的结果 即出席 迟到 缺席 其他 这是我的观点 td users gt student id td td users gt student fir
  • jQuery:执行同步 AJAX 请求

    我过去曾做过一些 jQuery 但我完全坚持这一点 我知道使用同步 ajax 调用的优点和缺点 但在这里它是必需的 远程页面已加载 由 firebug 控制 但未显示返回 我应该做些什么来使我的函数正确返回 function getRemo
  • 函数内的右值引用参数的类型是什么? [复制]

    这个问题在这里已经有答案了 我这里有一个非常简单的函数定义 void testRvalue int r printf rvalue ref is called n testRvalue r this line gives no known
  • Docker 出现错误“无法计算缓存密钥:未找到” - 在 Visual Studio 中运行正常

    我使用 Visual Studio 生成了一个 Dockerfile 它在 Visual Studio 中运行得很好 现在我正在尝试从 Windows 本身构建它 docker build 并且我尝试了很多组合 但我收到以下错误 gt bu