我目前正在.NET Core中开发一个原型,为了简单起见,我选择了Docker / Heroku。
我注意到的是,当尝试通过heroku dotnet run ef database update
运行迁移时,dotnet
CLI不可用。我很快注意到这是由于我的最终映像只有运行时,而不是sdk。我的问题是:什么才能最有效地运行迁移,同时让运行时运行的映像更明亮?我是否只需要运行时就大有作为了?
这是我当前的图像,以便能够像现在一样运行迁移:
FROM mcr.microsoft.com/dotnet/core/sdk:3.0
WORKDIR /app
COPY --from=build-env /app/out ./
RUN dotnet tool install --global dotnet-ef
# Set ASPNETCORE_URLS to run the app on the port Heroku exposes.
# Kestrel run by default on 5000/1 and Heroku doesn't allow that.
CMD ASPNETCORE_URLS=http://*:$PORT dotnet Lazarus.dll
我同时拥有SDK和必须在生产映像中安装EF CLI感觉很不对,欢迎任何见识!