Skip to content

Feature(HW05): add docker setup with sqlite and config-based connection string#3

Open
goodman74 wants to merge 1 commit into
mainfrom
feature/homework-5
Open

Feature(HW05): add docker setup with sqlite and config-based connection string#3
goodman74 wants to merge 1 commit into
mainfrom
feature/homework-5

Conversation

@goodman74
Copy link
Copy Markdown
Owner

  • Добавлена Docker-конфигурация (Dockerfile, docker-compose, .env)
  • Настроен build context и .dockerignore в корне solution
  • Реализован запуск приложения через docker run и docker compose
  • Подключён SQLite через volume (/webhost/db)
  • Перевод подключения к БД на IConfiguration (ConnectionStrings:Default)
  • Добавлена поддержка переопределения connection string через переменные окружения
  • Обеспечено переключение между локальным SQLite и SQLite в контейнере без изменения кода

…n string

- Добавлена Docker-конфигурация (Dockerfile, docker-compose, .env)
- Настроен build context и .dockerignore в корне solution
- Реализован запуск приложения через docker run и docker compose
- Подключён SQLite через volume (/webhost/db)
- Перевод подключения к БД на IConfiguration (ConnectionStrings:Default)
- Добавлена поддержка переопределения connection string через переменные окружения
- Обеспечено переключение между локальным SQLite и SQLite в контейнере без изменения кода
@goodman74 goodman74 changed the title feat(docker): add docker setup with sqlite and config-based connection string Feature(HW05): add docker setup with sqlite and config-based connection string Apr 18, 2026
@goodman74
Copy link
Copy Markdown
Owner Author

Комментарии к выполненной работе

у меня контекст докера - корень solution "HW05 - Homeworks\05 Упаковка в docker\src",
поэтому там же и .dockerignore

все связанные файлы в папке "Homeworks\05 Упаковка в docker\src\docker"
.env - переменные окружения
docker-compose.yml
HW05.Dockerfile

Запуск как просто отдельный контейнер

cd "Homeworks\05 Упаковка в docker\src\docker"

docker build -f HW05.Dockerfile -t webhost --build-arg API_PORT_INT=8080 ../.

docker run -d --name webhost -p 8091:8080 -v db:/webhost/db -e ASPNETCORE_URLS=http://+:8080 -e ConnectionStrings__Default="Filename=/webhost/db/PromoCodeFactory.sqlite" -e ASPNETCORE_ENVIRONMENT=Development webhost

Запуск через docker compose (все параметры через docker compose и .env)

cd "Homeworks\05 Упаковка в docker\src\docker"

docker compose build

docker compose up -d

Переключение между БД

Для автоматического переключения между локальным SQLite & SQLite в контейнере сделан рефакторинг DependencyInjection.AddEfDataAccess и appsettings.json.
Используется стандартный приоритет конфигурации ASP.NET Core: переменные окружения переопределяют значения из appsettings.json.

@goodman74 goodman74 force-pushed the main branch 14 times, most recently from 7a02f9c to 5b76014 Compare April 24, 2026 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant