【发布时间】:2021-07-22 02:28:33
【问题描述】:
我有一个小型应用程序,我想在 .Net5.0 中进行容器化。它在 docker 之外运行良好,但如果将 RUN dotnet ef database update 添加到我的 docker 文件中,则会出现构建错误。不知道是不是放错地方了还是不行。
COPY --from=publish /app/publish/tomix.db . 也会正确复制新的数据库文件吗?
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
ENV ASPNETCORE_URLS=http://+:80
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["API/API.csproj", "API/"]
RUN dotnet ef database update
RUN dotnet restore "API/API.csproj"
COPY . .
WORKDIR "/src/API"
RUN dotnet build "API.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "API.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish/tomix.db .
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "API.dll"]
【问题讨论】:
-
什么是构建错误?
-
我不确定你为什么要在你的 docker 文件中运行
dotnet ef database update?应该在应用程序运行时而不是在构建映像时更新数据库?
标签: docker sqlite entity-framework .net-core webapi