【发布时间】:2019-09-10 22:18:57
【问题描述】:
我正在尝试将我的 asp.net-core 应用程序包含在一个 docker 容器中。当我使用 Microsoft-secret-store 保存凭据时,我需要在我的容器中运行 dotnet user-secrets 命令。应用程序在启动时需要读取这些凭据,因此我必须在启动应用程序之前运行该命令。在我的 Dockerfile 中尝试执行此操作时出现错误:
---> Running in 90f974a06d83
Could not find a MSBuild project file in '/app'. Specify which project to use with the --project option.
我尝试先构建我的应用程序,然后使用已经构建的 dll 构建一个容器,但这给了我同样的错误。我还尝试使用 ENTRYPOINT ["/bin/bash"] 连接到容器,然后在容器中环顾四周。似乎创建的 /app 文件夹不包含 .csproj 文件。我不确定这是否是一个错误。
我的 Dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["Joinme.Facade/Joinme.Facade.csproj", "Joinme.Facade/"]
COPY ["Joinme.Domain/Joinme.Domain.csproj", "Joinme.Domain/"]
COPY ["Joinme.Business/Joinme.Business.csproj", "Joinme.Business/"]
COPY ["Joinme.Persistence/Joinme.Persistence.csproj", "Joinme.Persistence/"]
COPY ["Joinme.Integration/Joinme.Integration.csproj", "Joinme.Integration/"]
RUN dotnet restore "Joinme.Facade/Joinme.Facade.csproj"
COPY . .
WORKDIR "/src/Joinme.Facade"
RUN dotnet build "Joinme.Facade.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "Joinme.Facade.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
RUN dotnet user-secrets set "jwt:secret" "some_password"
ENTRYPOINT ["dotnet", "Joinme.Facade.dll"]
我的预期结果是设置了密码,因此我可以启动容器而不会崩溃。
【问题讨论】:
标签: docker asp.net-core