ca9*_*3d9 6 asp.net visual-studio docker dockerfile asp.net-core
我已经为 Windows 安装了 Docker,并使用 Visual Studio 2017 创建了一个具有 docker 支持的新 Asp.net 核心应用程序(我还没有做任何更改)。但是docker build报如下错误。Dockerfile 是否正确?
PS C:\source\repos\myProj\ProcessFiles> docker build 。 将构建上下文发送到 Docker 守护进程 1.178MB 步骤 1/17:来自 microsoft/dotnet:2.1-aspnetcore-runtime AS base ---> 04aae08f15c5 步骤 2/17:工作目录 /app ---> 使用缓存 ---> 135955e04284 步骤 3/17:暴露 34746 ---> 使用缓存 ---> 85fd0075aa42 步骤 4/17:暴露 44398 ---> 使用缓存 ---> 7e3d5526f601 步骤 5/17:从 microsoft/dotnet:2.1-sdk AS 构建 ---> 7c3e298d40ac 步骤 6/17:工作目录 /src ---> 使用缓存 ---> b395ba27d8f9 步骤 7/17:复制 ProcessFiles/ProcessFiles.csproj ProcessFiles/ 复制失败:stat /var/lib/docker/tmp/docker-builder662645761/ProcessFiles/ProcessFiles.csproj:没有这样的文件 或目录
这是DockerfileVisual Studio 自动生成的。错误发生在线路上COPY ProcessFiles/ProcessFiles.csproj ProcessFiles/。
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 34746
EXPOSE 44398
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ProcessFiles/ProcessFiles.csproj ProcessFiles/
RUN dotnet restore ProcessFiles/ProcessFiles.csproj
COPY . .
WORKDIR /src/ProcessFiles
RUN dotnet build ProcessFiles.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish ProcessFiles.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ProcessFiles.dll"]
Run Code Online (Sandbox Code Playgroud)
这是 Visual Studio 输出。(关于设置 AWS 的行被排除在外)。
检查 Dockerfile 以了解如何构建项目和 docker 镜像 ...跳过构建项目,因为它是作为 Dockerfile 的一部分完成的 执行 docker build ... 调用 'docker build',工作文件夹 'C:\source\repos\myProj\ProcessFiles,docker 文件 C:\source\repos\myProc\ProcessFiles\Dockerfile,图像名称 processfiles:latest' ... docker build:将构建上下文发送到 Docker 守护进程 1.178MB ... docker build: COPY failed: stat /var/lib/docker/tmp/docker-builder225959758/ProcessFiles/ProcessFiles.csproj: 没有这样的文件或目录 ... docker build: 步骤 1/17 : FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base ... docker build: ---> 04aae08f15c5 ... docker build:第 2/17 步:WORKDIR /app ... docker build: ---> 使用缓存 ... docker build: ---> 135955e04284 ... docker build:第 3/17 步:EXPOSE 34746 ... docker build: ---> 使用缓存 ...码头工人构建:---> 85fd0075aa42 ... docker build:第 4/17 步:EXPOSE 44398 ... docker build: ---> 使用缓存 ... docker build: ---> 7e3d5526f601 ... docker build: 步骤 5/17 : FROM microsoft/dotnet:2.1-sdk AS build ... docker build: ---> 7c3e298d40ac ... docker build: 步骤 6/17 : WORKDIR /src ... docker build: ---> 使用缓存 ... docker build: ---> b395ba27d8f9 ... docker build:第 7/17 步:复制 ProcessFiles/ProcessFiles.csproj ProcessFiles/ 执行“docker build”时出错 尝试清理为失败的部署创建的任何 ELB 资源 将容器发布到 AWS 的未知错误
这是目录中的文件C:\source\repos\myProj。该文件Dockerfile位于C:\source\repos\myProj\ProcessFile\. 应该向上移动一级吗?
模式名称 ---- ---- d----- 斌 d----- 对象 d----- 进程文件 -a---- .dockerignore -a---- .git 属性 -a---- .gitignore -a---- docker-compose.dcproj -a---- docker-compose.override.yml -a---- docker-compose.yml -a---- myProc.sln
当您运行构建命令时
docker build .
Run Code Online (Sandbox Code Playgroud)
该.命令中的 表示发送到(可能是远程)docker 引擎的“构建上下文”。所有COPY和ADD命令必须来自此目录内部(或来自多阶段构建的前一阶段)。您还可以使用该.dockerignore文件从此上下文中排除文件。tmp 目录是由该构建上下文组成的 docker 唯一生成的内部目录。
要解决您的问题,您需要确保 ProcessFiles/ProcessFiles.csproj 存在于运行构建的目录中,并且没有将其从文件的上下文中排除.dockerignore。
编辑:根据您的评论,将复制命令更改为:
COPY ProcessFiles.csproj ProcessFiles/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3119 次 |
| 最近记录: |