我試圖使用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