Bluemix上的Docker run命令不允许正确设置环境变量

时间:2015-08-29 20:20:43

标签: docker containers ibm-cloud

当我尝试使用

创建一个docker容器时
cf ic run -e AUTHORIZED_KEYS="`cat ~/.ssh/id_rsa.pub`" --name ssh-test -d busybox

或用

设置环境变量之后
docker run -e AUTHORIZED_KEYS="`cat ~/.ssh/id_rsa.pub`" --name ssh-test -d busybox

我总是回到以下错误消息,在本地docker主机上运行命令时不会报告:

FATA[0001] Error response from daemon: Error creating container 
{'space_guid': u'guid', 'name': u'ssh-test', 'tenant_name': u'tenant',
'image': u'guid', 'security_groups': None, 'flavor': u'1', 'id': None,
'tenant': u'tenant'}: too many values to unpack 

我尝试了一些事情,触发错误消息的最简单方法是跟随命令,包含两个等于(=)个字符:

cf ic run -e "AUTHORIZED_KEYS='ABC=='" --name ssh-test busybox

我做错了还是不支持此用例?

1 个答案:

答案 0 :(得分:0)

遵循此Docker文档,ENV变量需要包含在双引号中 https://docs.docker.com/reference/run/#env-environment-variables

这可能就是为什么cat命令的输出会爆炸,导致'解压缩的值太多'。 可能在本地执行时,它会被检查并“更正”,但在网络打包/解包期间,不支持省略双引号。

无论如何,根据我上面链接的Docker文档,您可以尝试直接在Docker文件中添加公钥的值,您可以在其中指定ENV变量,就像通过控制台一样:使用Dockerfile将允许您管理更公平的公钥价值。