Я ищу способ Dockerize моего проекта.Я использую docker compose, чтобы поместить базу данных в тот же контейнер
Вот мой Dockerfile:
FROM microsoft/dotnet:2.2-sdk
COPY . /app
WORKDIR /app
RUN ["dotnet", "restore"]
RUN ["dotnet", "build"]
EXPOSE 80/tcp
RUN chmod +x ./entrypoint.sh
CMD /bin/bash ./entrypoint.sh
Файл entrypoint.sh:
#!/bin/bash
set -e
run_cmd="dotnet run --server.urls http://*:80"
until dotnet ef database update --project OnSeRassure.Persistence --startup-project OnSeRassure.Web; do
>&2 echo "SQL Server is starting up"
sleep 1
done
>&2 echo "SQL Server is up - executing command"
exec $run_cmd
Иdocker-compose.yml
version: "3"
services:
web:
build: .
ports:
- "8000:80"
depends_on:
- db
db:
image: "mcr.microsoft.com/mssql/server"
environment:
SA_PASSWORD: "MyStrongPassword1!"
ACCEPT_EULA: "Y"
# volumes:
# - /backup/mssql:/private/opt/mssql
Я использовал этот быстрый старт для создания этих файлов: https://www.quickstart.com
Когда я запускаю docker-compose up
У меня появляется эта ошибка
No project was found. Change the current working directory or use the --project option.
Есть идеи?
Вот моя архитектура проекта:
DBContext и миграции находятся в OnSeRassure.Persistence и при запускепроект OnSeRassure.Web