我目前正在使用.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感觉不太对,欢迎提供任何见解!