envvariables在运行容器中可见,但不能在bash脚本中插入
我在docker-compose中设置了一个envvariables,如下所示:
cloud: build: context: foobar/. ports: - "5000:5000" depends_on: - redis - rabbitmq - postgresql links: - redis - rabbitmq - postgresql environment: - RABBITMQ_HOST=rabbitmq
我可以看到它在运行的容器中列出,我可以很好地回应它。
WORKON_HOME=/opt/virtualenvs VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHLVL=1 HOME=/root no_proxy=*.local, 169.254/16 LESSOPEN=| /usr/bin/lesspipe %s RABBITMQ_HOST=rabbitmq LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/env
但是,当我尝试在运行容器中的configuration文件中使用它时,如下所示:
amqp://guest:guest@${RABBITMQ_HOST}
然后我运行docker-compose,应用程序只是退出,因为它找不到RABBITMQ_HOSTvariables? 是什么赋予了?
我使用envdir像这样开始在一个bash脚本gunicorn服务器:
envdir /apps/foobar/.envdir gunicorn -w 2 -b 0.0.0.0:5000 dispatch:app --reload
更新:我在Mac(el capitan)上使用Docker企业版(EE)。 我正在用Gunicorn应用程序服务器(dockerfile)使用Flask(python 3)。