Итак, вот идея.Допустим, у вас есть эти папки / каталоги, каждая из которых представляет отдельный проект.
MyAwesomeProject
->db
->rest-api-java-maven
->reactjs-ui
->python-web-app
->scripts
->front-end.ps1
->back-end.ps1
->db.ps1
->back-end-2.ps1
->setup.bat
->docker-compose.yml
Заставьте ваш setup.bat запускать скрипты из папки скриптов.
#Contents of setup.bat file
@echo off
start PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "scripts\front-end.ps1"
start PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "scripts\db.ps1"
start PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "scripts\back-end.ps1"
exit
И эти отдельные скриптыНапример, файл будет запускать каждый отдельный контейнер Docker,
#Contents of db.ps1
cd db
$containerID = docker ps -q
docker kill $containerID
docker build . --tag=db
docker run -p 27017:27017 db
#Contents of back-end.ps1
cd rest-api
.\mvnw clean install -DskipTests=true
.\mvnw spring-boot:run
#Contents of ui.ps1
cd ui
npm run start
. И затем каждый из этих проектов (и я говорю, что проекты не являются модулями, потому что внутренний проект Java может иметь несколько модулей) имеет свой собственный Dockerfile
Теперь все, что вам нужно сделать, это запустить файл bat, и ваш проект будет правильно инициализирован.