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 中运行正常 的相关文章

  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Antlr 解析器运算符优先级

    考虑以下语法 我对运算符优先级有疑问 例如 res 2 a b有一个类似的解析树res 2 a b 我知道问题出在哪里 但我没有想到没有相互左递归的 漂亮 解决方案 你能帮我一点忙吗 该语法与自定义访问者一起使用 grammar Math
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • NSArrayController 无需将大型数据集加载到数组中

    我想使用 NSArrayController 向 NSTableView 提供数据 我面临的问题是我不想将所有数据预先加载到数组中 然后使用数组控制器setContent 方法 我的数据模型是一个管理数百万条记录的大型现有代码库 它包含有效
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 如何修复:“无法解析类型 java.lang.CharSequence。它是从所需的 .class 文件间接引用的”消息? [复制]

    这个问题在这里已经有答案了 我正在尝试使用这个字符串 amountStr amountStr replace replace replace 但我收到一条错误消息 我知道我收到的错误消息是因为我刚刚发布的字符串已过时 所以我想知道该字符串的
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我
  • 如何在 OSX 上安装 LaTeX .sty 文件?

    我设置了一个 LaTeX 项目 tex documents some file tex support todonotes sty where some file tex uses todonotes usepackage colorinl
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前
  • 禁用允许文本选择的

    残疾人可以吗
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下

随机推荐

  • 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