我正在尝试从docker文件构建.netcore v2.2 WebAPI应用程序的映像。但是,当我尝试使用以下命令构建映像时,出现“没有这样的文件或目录”错误:
docker build -t helloworld .
我的计算机上同时安装了Microsoft / dotnet“最新”和“ 2.2-aspnetcore-runtime”基础映像。
这是我的docker文件
FROM microsoft/dotnet
RUN mkdir /app
COPY ./bin/Release/netcoreapp2.2 /app
WORKDIR /app
ENTRYPOINT ["dotnet", "/app/HelloWorld.dll"]
# ASP.NET Core: Kestrel should listen on all IPs
ENV ASPNETCORE_URLS="http://0.0.0.0:5000"
这是我的解决方案的文件夹结构(我尝试了src中的命令):
这是来自docker的完整错误详细信息:
COPY failed: stat /var/lib/docker/tmp/docker-builder896068669/bin/Release/netcoreapp2.2: no such file or directory
答案 0 :(得分:1)
运行./bin/Release/netcoreapp2.2/publish
的计算机上似乎不存在文件docker build
运行docker build -t helloworld .
时,它将把.
中的所有文件(即运行命令的当前目录)复制到 build上下文,在运行COPY
指令时使用,因此您需要确保从正确的目录运行命令,该目录中的文件将对COPY
可用
您还可以通过指定要用作构建上下文的路径(例如docker build -t helloworld /path/to/my/dir
答案 1 :(得分:1)
您可以将./bin/Release/netcoreapp2.2
更改为./bin/release/netcoreapp2.2
文件夹名称区分大小写