【发布时间】:2019-04-02 15:16:19
【问题描述】:
我刚刚开始使用 Visual Studio 15.8.8 的 .NET Core 项目 (2.1) 的新解决方案。它可以通过将 docker compose 文件设置为启动项目来运行和调试它。有效!
从逻辑上讲,我应该能够使用简单的命令行语句构建 docker 映像。但是,它抱怨找不到 csproj。这很奇怪。该文件存在,正如我所说,我可以从 Visual Studio 运行它。我从一个目录和具有 dockerfile 的目录尝试了它。同样的问题。
我该如何解决这个问题?我唯一想要的就是简单地构建我的图像,然后使用 docker 命令运行它。
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["TryNewDocker2/TryNewDocker2.csproj", "TryNewDocker2/"]
RUN dotnet restore "TryNewDocker2/TryNewDocker2.csproj"
COPY . .
WORKDIR "/src/TryNewDocker2"
RUN dotnet build "TryNewDocker2.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "TryNewDocker2.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "TryNewDocker2.dll"]
Het 是撰写文件:
version: '3.4'
services:
trynewdocker2:
image: ${DOCKER_REGISTRY}trynewdocker2
build:
context: .
dockerfile: TryNewDocker2/Dockerfile
从逻辑上讲,我希望“docker-compose up”在解决此问题时继续工作。
【问题讨论】:
-
编辑问题以包含您的
Dockerfile。 -
刚刚在帖子中完成
-
我认为没有必要在执行
dotnet publish之前执行dotnet build,应该隐含构建。 -
@Matthew 你说得有道理,但这只是自动生成的 dockerfile。首先,我想让这项工作(这应该很容易,因为它是默认设置)。然后我想让它变得更好。
标签: docker asp.net-core .net-core dockerfile