Как настроить конфигурацию flyway в конвейере непрерывного развертывания, используя Travis CI и Azure? - PullRequest
0 голосов
/ 20 июня 2019

Я использую flyway для миграции БД в приложении NodeJS.Создание образа докера приложения через Travis CI, который передается в реестр Azure Container.Оттуда веб-хук берет изображение и запускает экземпляр контейнера в службе приложений Azure.

У меня проблемы с передачей env.определенные конфиги соединения с БД для команды flyway migrate cli.

Добавлены сведения о соединении в качестве параметров приложения в службе приложения, но они не были переданы команде запуска docker.Хотя кажется, что настройки доступны для приложения после его запуска.

Не удалось использовать окружение Travis CI.переменные, поскольку детали подключения различаются в зависимости от среды.

Нужна помощь, если кто-то решил подобную проблему.

1 Ответ

0 голосов
/ 09 июля 2019

Я нашел способ решить эту проблему. Мысль опубликует решение, так как кто-то может найти его полезным.

Во-первых, мне нужно иметь env. конкретные данные подключения к БД: Для этого я настроил параметры в службе приложений Azure и получил их с помощью команды CLI в сценарии сборки TravisCI.

Во-вторых, мне нужно передать конфиги БД в Docker-контейнер как переменные среды. Поскольку служба приложений Azure не позволяет нам изменять команду docker run, мы не можем передавать явные настройки среды при запуске контейнера Docker.

Итак, чтобы преодолеть это ограничение,

Я установил аргументы сборки (см. установка переменных времени сборки ) для команды сборки docker для передачи env. конкретные сведения о подключении к БД для сборки Docker.

Поскольку аргументы сборки не сохраняются в окончательном образе сборки, мне пришлось преобразовать их в переменные среды с помощью команды ENV. См. Настройка переменных среды Docker .

Теперь параметры подключения к БД доступны как env. конфиги при запуске докера. Следовательно, при запуске Docker команда flyway migrate может без проблем подключаться к БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...