.net Docker容器复制主机本地文件

xe55xuns  于 2023-04-22  发布在  .NET
关注(0)|答案(1)|浏览(152)

我正在使用visual studio 2022,并有以下docker文件,我试图包括其他文件,并在不同的目录中,而不是我的应用程序正在部署。我已经尝试了多种方法来复制test.txt,但似乎没有工作。

FROM mcr.microsoft.com/dotnet/runtime:7.0 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["Testing/Testing.csproj", "Testing/"]
COPY ["C://text.txt", "C://test.txt"]

RUN dotnet restore "Testing/Testing.csproj"
COPY . .
WORKDIR "/src/Testing"
RUN dotnet build "Testing.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Testing.csproj" -c Release -o /app/publish /p:UseAppHost=false

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

67up9zun1#

您似乎正在尝试从C://复制文件。
Dockerfiles无法访问其上下文之外的文件。这通常是当前目录,由docker build -t myapp .命令中的.传递。因此,您需要将该文件放在Dockerfile旁边并且在任何.dockerignore文件中没有test.txt,因为这将阻止它被传递到Docker守护进程上下文(任何可用于COPY指令的内容)
只有这样,您才可以执行COPY ["text.txt", "/test.txt"],例如
另外,dotnet运行时层是基于Linux的,默认情况下,我相信,所以没有Docker甚至知道的“C驱动器”。

相关问题