Packer Docker构建器,不接受-v foo:/ bar

时间:2016-04-14 19:44:26

标签: docker packer

描述问题并包含以下信息:

Packer Version - 0.9.0
Host platform - Centos 7.2

我正在尝试配置一个docker容器,我需要容器将/ lib / modules安装到容器中的/ lib / modules。奇怪的是当我运行Packer说它运行的docker run命令时,我能够启动容器并做我需要做的事情。

我的Docker命令有效 -

docker run --privileged -t -i --net=host -v /lib/modules:/lib/modules 9a8c6ee5e82a /bin/bash -c 'sudo /sbin/service iptables restart'

关于此

的模板的一部分
{ "builders": [{ "type": "docker", "image": "my-img", "pull": false, "export_path": "docker-march.tar", "run_command": [ "--privileged", "-d", "-i", "-t", "--net=host", "-v /lib/modules:/lib/modules", "{{.Image}}", "/bin/sh" ] }],

错误 ==> docker:运行容器时出错:Docker以非零退出状态退出。 ==> docker:Stderr:提供但未定义的标志:-v / lib / modules:/ lib / modules

这就是它的运行

docker: Run command: docker run -v /home/my-user/.packer.d/tmp/packer-docker780723700:/packer-files --privileged -d -i -t --net=host -v /lib/modules:/lib/modules top-rhel6-base /bin/sh

当我手动运行时,工作。

1 个答案:

答案 0 :(得分:0)

所以我想出了解决方案。 Packer希望参数'-v'在它自己的引号集中,然后你想要传递给另一行的-v。例如,这就是为我工作的

run_command": [ "--privileged", "-d", "-i", "-t", "--net=host", "-v", " /lib/modules:/lib/modules", "{{.Image}}", "/bin/sh" ]

以下是我所做的不起作用

run_command": [ "--privileged", "-d", "-i", "-t", "--net=host", "-v /lib/modules:/lib/modules", "{{.Image}}", "/bin/sh" ]

如果这不在文档中(我没有看到它,但这并不意味着它不存在)它可能应该是?