gpt4 book ai didi

visual-studio - 尝试从 Docker 中的 VS 运行时出现错误 "getcwd() failed: No such file or directory"

转载 作者:行者123 更新时间:2023-12-02 17:35:26 24 4
gpt4 key购买 nike

我有一个项目设置为使用 docker-compose 在 Docker 中本地运行。直到最近,它一直运行良好。我不相信我改变了任何应该影响这个的东西(除了 VS 升级?),我什至尝试回滚到较旧的提交。在所有情况下,我现在都会收到一条错误消息,它在 Visual Studio 的输出窗口中显示为:

docker exec -i f93fb2962a1e sh -c ""dotnet"  --additionalProbingPath /root/.nuget/packages --additionalProbingPath /root/.nuget/fallbackpackages  "bin/Debug/netcoreapp3.1/MattsTwitchBot.Web.dll" | tee /dev/console"
sh: 0: getcwd() failed: No such file or directory
It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download

我尝试了各种不同的方法(更改 Docker 文件中的基本镜像、删除旧镜像和容器等),但我一直收到相同的错误消息。奇怪的是,当我执行 File->New 时,Visual Studio 会生成一个外观非常相似的 Docker 文件,并且运行良好。我不知道问题是什么,但我希望这里有人能发现它。

My full repo is available on Github .这是 asp.net 核心项目的 docker:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["MattsTwitchBot.Web/MattsTwitchBot.Web.csproj", "MattsTwitchBot.Web/"]
COPY ["MattsTwitchBot.Core/MattsTwitchBot.Core.csproj", "MattsTwitchBot.Core/"]
RUN dotnet restore "MattsTwitchBot.Web/MattsTwitchBot.Web.csproj"
COPY . .
WORKDIR "/src/MattsTwitchBot.Web"
RUN dotnet build "MattsTwitchBot.Web.csproj" -c Release -o /app/build

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

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

和解决方案的 docker-compose (即使没有 Couchbase 的东西,我也遇到了同样的错误,但为了完整起见,我将它粘贴在这里):
version: '3.4'

services:
couchbase:
image: couchbase:6.5.0-beta2
volumes:
- "./couchbasetwitchbot:/opt/couchbase/var" # couchbase data folder
ports:
- "8091-8096:8091-8096" # https://docs.couchbase.com/server/current/install/install-ports.html
- "11210-11211:11210-11211"
mattstwitchbot.web:
image: ${DOCKER_REGISTRY-}mattstwitchbotweb
build:
context: .
dockerfile: MattsTwitchBot.Web/Dockerfile
environment:
Couchbase__Servers__0: http://couchbase:8091/ # Reference to the "couchbase" service name on line 4
depends_on:
- couchbase # Reference to the "couchbase" service name on line 4
command: ["./wait-for-it.sh", "http://couchbase:8091"]

最佳答案

我没有足够的声誉来发表评论,但我认为这可能是您的 .csproj 文件。你提到你升级了 Visual Studio。由于 .csproj 文件包含有关项目的信息(包括对系统程序集的引用),并且您将其复制到 Dockerfile 中,因此可能:

  • .csproj 文件需要在您更新 VS 后更新。
  • dockerfile 'FROM' 语句中的 dotnet 核心版本与您在本地使用的版本不同。

  • 也许通过启动一个新项目并添加您的源代码来测试这一点,然后对旧的和新的 .csproj 文件进行比较。您也可以备份原始文件并尝试手动修改 .csproj 文件。我找到了一个 blog post这演示了将 vs2015 csproj 文件升级到 vs2017。希望它有帮助。

    关于visual-studio - 尝试从 Docker 中的 VS 运行时出现错误 "getcwd() failed: No such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59989153/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com