Я думаю, что есть несколько способов, которыми вы могли бы справиться с этим.
Измените свое приложение, чтобы оно было в курсе и позволяло вам выбирать.Возможно, у вас есть параметр запроса для выбора, или /dev/blah
переходит в одну БД, а /test/blah
переходит в другую.
Дважды нажмите одно и то же приложение, но свяжите разные базы данных и маршруты с каждым приложением.
Попытка запустить два экземпляра одного и того же кода приложения внутри Tomcat в одном приложении на CF.
Из них # 1 подходитно, вероятно, потребует изменения кода.# 2 будет моим выбором, потому что это очень быстро сделать, # 3 будет много работы, потому что вы будете бороться с Java buildpack, что не рекомендуется.
Для достижения # 2, вы должны сделать следующее:
- Нажмите код приложения как app-A.
- Привязать службу базы данных.
- Сопоставить маршрут с контекстным путем, например
my-cool-app.example.com/app-a
. - Запустите приложение.
Повторите то же самое для app-B, но используйте другую базу данных и маршрут / путь (например, my-cool-app.example.com / app-b) `.
Если вы развертываете WAR-файл, вам нужно будет указать пакету сборки Java для развертывания вашего приложения по контекстному пути (он должен соответствовать заданному вами пути контекста маршрута).
cf set-env my-application JBP_CONFIG_TOMCAT '{tomcat: { context_path: /app-a }}'
https://github.com/cloudfoundry/java-buildpack/blob/master/docs/container-tomcat.md#common-configurations
Если вы используете Spring Boot и развертывание JAR, вам нужно установить server.contextPath=/app-a
.
Надеюсь, это поможет!