【发布时间】:2019-08-23 19:05:17
【问题描述】:
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/api/values",
"httpPort": 52706,
"useSSL": true,
"sslPort": 44344
}
这会在通过 Visual Studio 运行时给出输出
但是在构建时,它会抛出错误
Docker 文件:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 83
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["testdocker/testdocker.csproj", "testdocker/"]
RUN dotnet restore "testdocker/testdocker.csproj"
COPY . .
WORKDIR "/src/testdocker"
RUN dotnet build "testdocker.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "testdocker.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENV ASPNETCORE_URLS http://+:83
ENTRYPOINT ["dotnet", "testdocker.dll"]
构建 docker 镜像
docker build -t testdock .
但它给了
COPY failed: stat /var/lib/docker/tmp/docker-builder666564019/testdocker/testdocker.csproj,: no such file or directory
请帮助重写 dockerfile 以完成此构建并运行应用程序
【问题讨论】:
-
不知何故 Docker 认为
,是您文件名testdocker/testdocker.csproj的一部分。由于您使用的COPY的形式仅用于带有空格的文件名,因此请尝试使用“plan”COPY。 -
@Arkadiy:不。这是 COPY 命令的特殊语法,其中命令作为字符串组件数组传递。
,表示该数组中的一个新项目。它不是“路径”的一部分。 -
@ChrisPratt 知道,但有些东西很烂...
testdocker.csproj,: no such file- 逗号不应该在那里。 -
确实如此。这是我在下面的答案中发布的内容。复制到 MobyLinux VM 的目录不正确,因此 Dockerfile 路径错误。