【问题标题】:Running Sqlite in a docker container在 docker 容器中运行 Sqlite
【发布时间】: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"]

UPDATE 这是运行dotnet build -t tomix .后的错误

【问题讨论】:

  • 什么是构建错误?
  • 我不确定你为什么要在你的 docker 文件中运行dotnet ef database update?应该在应用程序运行时而不是在构建映像时更新数据库?

标签: docker sqlite entity-framework .net-core webapi


【解决方案1】:

AFAIK,dotnet ef 工具不再是 .NET SDK 的一部分,需要显式安装。即,在尝试 RUN dotnet ef database update 之前,您必须 RUN dotnet tool install dotnet-ef

【讨论】:

  • 谢谢@Mureinik,但是错误并没有消失。
猜你喜欢
  • 2022-12-14
  • 1970-01-01
  • 2022-10-04
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 2021-12-03
  • 2015-01-19
相关资源
最近更新 更多