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