我创建了一个在debian 9上构建的dockerfile,该文件应将我的vscode项目文件夹构建一个docker镜像,但是在构建docker镜像时出现2个模糊的错误。我所有的文件都位于home / rydeb / Desktop / DockerTestDebian目录中
尝试构建我的图像的结果
Step 1/12 : FROM microsoft/dotnet:2.0-sdk as builder
---> 9e06837225a4
Step 2/12 : ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
---> Using cache
---> a7abd475d0e7
Step 3/12 : RUN mkdir -p /home/rydeb/Desktop/DockerBuildStuff
---> Using cache
---> 72a293c67243
Step 4/12 : WORKDIR /home/rydeb/Desktop/DockerTestDebian
---> Running in 197210d0dc93
Removing intermediate container 197210d0dc93
---> 8b696a6350b1
Step 5/12 : COPY . /DockerBuildStuff
---> d38caf512a12
Step 6/12 : WORKDIR /home/rydeb/Desktop/DockerBuildStuff/DockerTestDebian
---> Running in ba9d0a67d8f4
Removing intermediate container ba9d0a67d8f4
---> b35c16802b52
Step 7/12 : RUN dotnet restore ./DockerTestDebian.csproj
---> Running in 7d5dfb98591d
MSBUILD : error MSB1009: Project file does not exist.
Switch: ./DockerTestDebian.csproj
The command '/bin/sh -c dotnet restore ./DockerTestDebian.csproj' returned a non-zero code: 1
我的docker文件
FROM microsoft/dotnet:2.0-sdk as builder
ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
RUN mkdir -p /home/rydeb/Desktop/DockerBuildStuff
WORKDIR /home/rydeb/Desktop/DockerTestDebian
COPY . /DockerBuildStuff
WORKDIR /home/rydeb/Desktop/DockerBuildStuff/DockerTestDebian
RUN dotnet restore ./DockerTestDebian.csproj
RUN dotnet publish -c release -o published -r linux-arm
FROM microsoft/dotnet:2.0.0-runtime-stretch-arm32v7
WORKDIR /root/
COPY --from=builder /root/src/app/DockerTestDebian/published .
CMD ["dotnet", "./DockerTestDebian.dll"]
答案 0 :(得分:1)
我刚刚设法使它基于Docker文件在这里运行:
https://github.com/dotnet/dotnet-docker/blob/master/samples/aspnetapp/Dockerfile
我只是将
注释掉了RUN dotnet restore
这样做允许它继续,并且在
时运行了还原RUN dotnet publish
似乎对我来说很好。
答案 1 :(得分:0)
在 dockerfile 上注释您的 dotnet restore 命令
#RUN dotnet restore
答案 2 :(得分:0)
在我的情况下,将文件 xcopy 到我的项目文件夹的 Post build 事件会导致此错误。
只需删除、构建并运行它,错误就消失了。 (右键单击项目 -> 属性 -> 构建事件) 然后再次添加复制命令,一切正常。