描述问题并包含以下信息:
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
当我手动运行时,工作。
答案 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" ]
如果这不在文档中(我没有看到它,但这并不意味着它不存在)它可能应该是?