У меня есть приложение ASP.Net Core, которое использует Entity Framework с Sqlite. Я создаю образ Docker для развертывания этого.
Приложение ASP.Net Core работает нормально при отладке с помощью VS Code, но при работе в Docker-контейнере я получаю сообщение об ошибке:
SqliteException: ошибка SQLite 1: «нет такой таблицы: MyTable».
Я подумал, что это потому, что мне нужно запускать миграции Entity Framework при создании образа Docker. Я добавил dotnet ef database update
в свой Dockerfile, который выглядит так:
FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
RUN dotnet ef database update
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "MyApplication.dll"]
Образ строится без ошибок. Однако, когда я создаю контейнер и смотрю на базу данных, он пуст без таблиц.
Как правильно настроить базу данных с Entity Framework при создании образа Docker?