Репозиторий с лабораторными работами на C#.
Каждая папка - отдельный проект: код, файл проекта и Dockerfile для сборки и запуска в контейнере.
Каждая папка самодостаточна: внутри есть всё, что нужно для сборки образа и запуска программы.
- Docker
- Терминал (bash, PowerShell или CMD)
Ничего больше устанавливать не нужно: .NET SDK и runtime уже внутри образов.
- Перейди в папку с нужным проектом:
cd /home/<имя пользователя>/<название проекта>
- Собери образ:
docker build -t myapp .
- Запусти контейнер:
docker run -it --rm myapp
Флаги:
- -it - интерактивный режим, чтобы вводить данные с клавиатуры (обязательно)
- --rm - удалить контейнер после завершения (опционально)
- Создай папку:
mkdir <название проекта, как в репозитории>
- Положи туда:
- Program.cs - код
- <название проекта, как в репозитории>.csproj - файл проекта
- Dockerfile - инструкция сборки
- В Dockerfile укажи имя .dll, совпадающее с именем .csproj:
ENTRYPOINT ["dotnet", "<название проекта, как в репозитории>.dll"]
Для этого используй команду: nano <название файла с расширением>
- Собери и запусти:
docker build -t <название проекта, как в репозитории> . docker run -it --rm <название проекта, как в репозитории>
Каждый проект использует multi-stage сборку:
- builder - dotnet/sdk собирает приложение
- runtime - dotnet/runtime запускает готовый .dll
Финальный образ лёгкий: без SDK, компиляторов и лишних файлов.
- Все проекты консольные. Если программа требует ввод данных - используй флаг -it.
- Если нужно поменять код - правишь Program.cs, пересобираешь образ.
- Dockerfile менять не нужно, если имя .csproj не изменилось.