Переменные среды Spring Boot Array в Docker/Marathon

Мое приложение имеет переменные среды массива в форме tableName[0]=tableName ... property.one.two.tableName[x]=tableNameX

При локальном запуске все работает нормально, когда я помещаю свойства в application.properties, аргументы командной строки или переменные среды. Однако, как только я попытаюсь выполнить развертывание на марафоне, переменные массива больше не будут работать. Я пытаюсь передать их в свойстве env в массиве marathon json. Я пытался:

"env": {
"property.one.two.tableName[0]":"tableName",
....
}

а также

"env": {
"property.one.two.tableName": ["tableName", ... ]
 ...
}

а также

"env" {
"tableName": [
 {"property.one.two.tableName[0]" : "tableName"}
 {....}
]
}

Но ничего не сработало. Кто-нибудь заставил это работать?


person aarbor    schedule 22.11.2016    source источник
comment
Боюсь, без более подробной информации о вашем приложении помочь невозможно. Первая версия, которая у вас есть, должна работать, поэтому не знаю, в чем здесь проблема. Вы можете попробовать использовать simpleservice в gist.github.com/mhausenblas/7aba37703f9669576b00e973ae6a50c8 и посмотреть, может передавать туда переменные env, и если да, то, вероятно, это проблема с тем, как была выполнена контеризация Spring.   -  person Michael Hausenblas    schedule 22.11.2016
comment
Я думаю, что на самом деле это ошибка Spring. Мой пример был немного неточным, поскольку у меня был только 1 уровень свойств. Настоящие свойства - property.one.two.three[x], а расслабленная привязка Spring не работала. Установка переменной среды на точное написание ожидаемой переменной решила проблему.   -  person aarbor    schedule 22.11.2016
comment
Хороший. Предлагаю вам ответить на вопрос самому, чтобы сделать его официальным ;)   -  person Michael Hausenblas    schedule 23.11.2016


Ответы (1)


Кажется, это ошибка с Spring. Расслабленная привязка Spring не работала. Установка переменной среды на точное написание ожидаемой переменной решила проблему.

В моем существующем коде ослабленная привязка работала для property.one.two, но перестала работать для property.one.two.three

person aarbor    schedule 22.11.2016