我试图使用IBM Containers for Bluemix部署容器并将其绑定到Bluemix服务。Bluemix:绑定到容器的服务未出现在VCAP_SERVICES中
我从现有的Bluemix应用程序开始,该应用程序绑定到我想要的MongoDB服务。我验证其VCAP_SERVICES
环境变量正确填充:
$ cf env mamacdon-app
Getting env variables for app mamacdon-app in org [email protected]/space dev as [email protected]
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_SERVICES
变量:
$ ssh -i ~/.ssh/id_rsa [email protected]
[email protected]:~# 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
[email protected]:~#
我预计VCAP_SERVICES
变量被注入。我究竟做错了什么?
这个工作确认在printenv输出。是的,似乎'sshd'不会将'VCAP_SERVICES'变量的值注入通过SSH打开的终端会话中。容器中的其他进程只能看到VCAP_SERVICES变量。 – mamacdon