Я хочу использовать образ докера моего монолитного приложения, чтобы протестировать мое приложение после внесения изменений. У меня есть один проект веб-приложения и много библиотечных проектов (не проект приложения!) В отдельных решениях, которые выводят эти проекты в путь, который помещает корзина приложения, и делают мое приложение исполняемым.
моя структура исходного кода выглядит следующим образом:
|--Master_Web_App.sln
| |
| app.csproj
|
|--projectA.sln
| |
| projectA-1.csproj
| |
| projectA-2.csproj
|
|--projectB.sln
|
projectB-1.csproj
|
projectB-2.csproj
после создания каждого проекта я копирую его выходные данные в физический путь, который определил веб-сайт:
wwwroot
|--app
|
bin
|
app.dll
projectA-1.dll
projectA-2.dll
projectB-1.dll
projectB-2.dll
Я создал базовый образ докера для запуска моего приложения.
когда в конкретном проекте (например, projectA-1) произошли изменения, я хочу создать одно изображение докера FROM baseIamge
, которое только копирует выходные данные projectA-1 в папку назначения.
Предположения:
- У меня должен быть один образ докера для изменений в проектах. (так как
у меня есть приложение с одним монолитом)
- проектов размещены отдельно, но часть
одно веб-приложение.
- я хочу создать изображение только с изменениями из базы
изображение.
как лучше всего справляться с этим ??
Я хотел бы создать Dockerfile в корне каждого проекта и создать инструмент для объединения всех этих Dockerfiles (каждый раз, когда изменения фиксируются и разработчик выбирает измененные проекты) и создает одноуровневый, но многоэтапный Dockerfile!
таким образом, результат Docker Build
будет изображением, включенным в выбранные проекты, и COPY
dll к базовому изображению. но я не уверен, что генерирование текста Dockerfile программным способом - хороший подход.