当我尝试使用
创建一个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
我做错了还是不支持此用例?
答案 0 :(得分:0)
遵循此Docker文档,ENV变量需要包含在双引号中 https://docs.docker.com/reference/run/#env-environment-variables
这可能就是为什么cat命令的输出会爆炸,导致'解压缩的值太多'。 可能在本地执行时,它会被检查并“更正”,但在网络打包/解包期间,不支持省略双引号。
无论如何,根据我上面链接的Docker文档,您可以尝试直接在Docker文件中添加公钥的值,您可以在其中指定ENV变量,就像通过控制台一样:使用Dockerfile将允许您管理更公平的公钥价值。