Bluemix:绑定到容器的服务不会出现在VCAP_SERVICES中

我正在尝试使用IBM Containers for Bluemix部署容器并将其绑定到Bluemix服务。

我从现有的Bluemix应用程序开始,它绑定到我想要的MongoDB服务。 我validation它的VCAP_SERVICES环境variables是否正确填充:

 $ cf env mamacdon-app Getting env variables for app mamacdon-app in org mamacdon@ca.ibm.com / space dev as mamacdon@ca.ibm.com... OK System-Provided: { "VCAP_SERVICES": { "mongodb-2.4": [ { "credentials": { /*private data hidden*/ }, "label": "mongodb-2.4", "name": "mongodb-1a", "plan": "100", "tags": [ "nosql", "document", "mongodb" ] } ] } ... 

然后,我使用ice命令在Bluemix中运行映像,使用--bind mamacdon-app参数将其绑定到我的CF应用程序:

 $ ice run --name sshparty \ --bind mamacdon-app \ --ssh "$(cat ~/.ssh/id_rsa.pub)" \ # For SSH access --publish 22 \ # For SSH access registry-ice.ng.bluemix.net/ibmliberty:latest 

顾名思义,这个图像就是基于IBM Websphere Liberty Docker镜像的一个简单的例子 – 足以让我通过SSH进入,

在这一点上,容器仪表板告诉我,该服务已被绑定到我的容器:

仪表板显示绑定的服务

但是,当我最后ssh进入容器,环境不包含VCAP_SERVICESvariables:

 $ ssh -i ~/.ssh/id_rsa root@129.41.232.212 root@instance-000123e2:~# env TERM=xterm SHELL=/bin/bash SSH_CLIENT=[private data hidden] SSH_TTY=/dev/pts/0 USER=root LS_COLORS=[omitted] MAIL=/var/mail/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/root LANG=en_CA.UTF-8 SHLVL=1 HOME=/root LOGNAME=root SSH_CONNECTION=[private data hidden] LESSOPEN=| /usr/bin/lesspipe %s LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/env root@instance-000123e2:~# 

我期望VCAP_SERVICESvariables被注入。 我究竟做错了什么?

我认为ssh守护进程在VCAP_SERVICES环境variables不可见的情况下出现问题。

但是,您可以确认容器的命令将看到以下testing的variables:

 ice run registry-ice.ng.bluemix.net/ibmliberty --bind mamacdon-app --name vcap_services_party printenv; sleep 60 

然后,在ice logs vcap_services_party的printenv输出中确认它

你可以试一试:

 ice run registry-ice.ng.bluemix.net/lintest/tradelite --bind yourappname --name yournewcontainer name 

一旦图像出现运行以下。

 # echo $VCAP_SERVICES 

有关更多信息,请查看容器文档。