Я тестирую приложение для рельсов, используя контейнер для докеров. То, что я пытаюсь сделать, это передать переменную ENV
при запуске, используя флаг -e
: docker run -p 3000:3000 -d -e "DOCKER_HOST=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')" somerepo/image:tag
. Это работает, я знаю, потому что, когда я колотить в контейнер и запустить env
я получаю правильный набор переменных:Pass Docker ENV variable to rails app
$ env
HOSTNAME=1641e2f6c81f
GEM_HOME=/usr/local/bundle
DOCKER_HOST=172.17.0.1
...
Когда я пытаюсь установить это в mongoid.yml
в рельсах приложение следующим образом:
production:
clients:
default:
database: somerailsdb
hosts:
- ${DOCKER_HOST}:27017
options:
options:
Я получаю следующее сообщение об ошибке MongoDB при попытке извлечения записей из базы данных:
App 10040 stdout: D, [2016-01-10T11:40:07.085516 #10040] DEBUG -- : MONGODB | getaddrinfo: Name or service not known
Это сказать что значение не устанавливается в приложении. Как передать это правильно в файле конфигурации mongoid.yml
?
Спасибо !!! Я не могу поверить, что забыл этот Дух! – Awatatah