Packer: Docker 1.4.x破坏的Shell脚本

创建于 2014-12-12  ·  85评论  ·  资料来源: hashicorp/packer

使用当前的打包程序源版本

使用docker 1.3.3的工作场景:

2014/12/12 15:49:51 packer-builder-docker: 2014/12/12 15:49:51 Running the provision hook
1418399391,,ui,message,    docker: Container ID: b0117b8cbffd154539242acb24666f703b78ff22ef782e0d03cc768ba38db982
2014/12/12 15:49:51 packer-provisioner-shell: 2014/12/12 15:49:51 Opening /tmp/packer-shell648686173 for reading
2014/12/12 15:49:51 packer-provisioner-shell: 2014/12/12 15:49:51 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:49:51 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:49:51 packer-builder-docker: 2014/12/12 15:49:51 Executing in container b0117b8cbffd154539242acb24666f703b78ff22ef782e0d03cc768ba38db982: "(cp /packer-files/upload080199707 /tmp/script.sh) >/packer-files/cmd466238654 2>&1; echo $? >/packer-files/cmd466238654-exit"
1418399391,,ui,say,==> docker: Provisioning with shell script: /tmp/packer-shell648686173
2014/12/12 15:49:53 packer-builder-docker: 2014/12/12 15:49:53 Waiting for exit code to appear for remote command...
2014/12/12 15:49:53 packer-builder-docker: 2014/12/12 15:49:53 Executed command exit status: 0
2014/12/12 15:49:55 packer-builder-docker: 2014/12/12 15:49:55 Executing in container b0117b8cbffd154539242acb24666f703b78ff22ef782e0d03cc768ba38db982: "(chmod 0777 /tmp/script.sh) >/packer-files/cmd678804741 2>&1; echo $? >/packer-files/cmd678804741-exit"
2014/12/12 15:49:57 packer-builder-docker: 2014/12/12 15:49:57 Waiting for exit code to appear for remote command...
2014/12/12 15:49:57 packer-builder-docker: 2014/12/12 15:49:57 Executed command exit status: 0
2014/12/12 15:49:59 packer-builder-docker: 2014/12/12 15:49:59 [INFO] RPC endpoint: Communicator ended with: 0
2014/12/12 15:49:59 [INFO] RPC client: Communicator ended with: 0
2014/12/12 15:49:59 [INFO] RPC endpoint: Communicator ended with: 0
2014/12/12 15:49:59 packer-provisioner-shell: 2014/12/12 15:49:59 [INFO] RPC client: Communicator ended with: 0
2014/12/12 15:49:59 packer-builder-docker: 2014/12/12 15:49:59 Executing in container b0117b8cbffd154539242acb24666f703b78ff22ef782e0d03cc768ba38db982: "(chmod +x /tmp/script.sh; PACKER_BUILD_NAME='docker' PACKER_BUILDER_TYPE='docker' /tmp/script.sh) >/packer-files/cmd838923936 2>&1; echo $? >/packer-files/cmd838923936-exit"
2014/12/12 15:50:01 packer-builder-docker: 2014/12/12 15:50:01 Waiting for exit code to appear for remote command...
2014/12/12 15:50:02 packer-builder-docker: 2014/12/12 15:50:02 Executed command exit status: 127
2014/12/12 15:50:03 packer-builder-docker: 2014/12/12 15:50:03 [INFO] RPC endpoint: Communicator ended with: 127
2014/12/12 15:50:03 [INFO] 0 bytes written for 'stderr'
2014/12/12 15:50:03 [INFO] RPC client: Communicator ended with: 127
2014/12/12 15:50:03 [INFO] 0 bytes written for 'stdout'
2014/12/12 15:50:03 [INFO] RPC endpoint: Communicator ended with: 127
2014/12/12 15:50:03 packer-provisioner-shell: 2014/12/12 15:50:03 [INFO] 0 bytes written for 'stderr'
2014/12/12 15:50:03 packer-provisioner-shell: 2014/12/12 15:50:03 [INFO] RPC client: Communicator ended with: 127
2014/12/12 15:50:03 packer-provisioner-shell: 2014/12/12 15:50:03 [INFO] 0 bytes written for 'stdout'

使用docker 1.4失败的场景:

1418398765,,ui,say,==> docker: Provisioning with shell script: /tmp/packer-shell348099556
2014/12/12 15:39:25 packer-provisioner-shell: 2014/12/12 15:39:25 Opening /tmp/packer-shell348099556 for reading
2014/12/12 15:39:25 packer-provisioner-shell: 2014/12/12 15:39:25 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:39:25 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:39:25 packer-builder-docker: 2014/12/12 15:39:25 Executing in container ff13b288d87f7fa9d3c1e5ffeb810cc8fec6be80b1bd8eab21cc39a8e2b22336: "(cp /packer-files/upload431013147 /tmp/script.sh) >/packer-files/cmd669791166 2>&1; echo $? >/packer-files/cmd669791166-exit"
2014/12/12 15:39:27 packer-provisioner-shell: 2014/12/12 15:39:27 Retryable error: Error uploading script: Upload failed with non-zero exit status: 1
2014/12/12 15:39:29 packer-provisioner-shell: 2014/12/12 15:39:29 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:39:29 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:39:29 packer-builder-docker: 2014/12/12 15:39:29 Executing in container ff13b288d87f7fa9d3c1e5ffeb810cc8fec6be80b1bd8eab21cc39a8e2b22336: "(cp /packer-files/upload047296517 /tmp/script.sh) >/packer-files/cmd706862496 2>&1; echo $? >/packer-files/cmd706862496-exit"
2014/12/12 15:39:31 packer-provisioner-shell: 2014/12/12 15:39:31 Retryable error: Error uploading script: Upload failed with non-zero exit status: 1
2014/12/12 15:39:33 packer-provisioner-shell: 2014/12/12 15:39:33 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:39:33 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:39:33 packer-builder-docker: 2014/12/12 15:39:33 Executing in container ff13b288d87f7fa9d3c1e5ffeb810cc8fec6be80b1bd8eab21cc39a8e2b22336: "(cp /packer-files/upload033689215 /tmp/script.sh) >/packer-files/cmd209553362 2>&1; echo $? >/packer-files/cmd209553362-exit"
2014/12/12 15:39:35 packer-provisioner-shell: 2014/12/12 15:39:35 Retryable error: Error uploading script: Upload failed with non-zero exit status: 1
2014/12/12 15:39:37 packer-provisioner-shell: 2014/12/12 15:39:37 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:39:37 [INFO] 109 bytes written for 'uploadData'
2014/12/12 15:39:37 packer-builder-docker: 2014/12/12 15:39:37 Executing in container ff13b288d87f7fa9d3c1e5ffeb810cc8fec6be80b1bd8eab21cc39a8e2b22336: "(cp /packer-files/upload479277833 /tmp/script.sh) >/packer-files/cmd622516948 2>&1; echo $? >/packer-files/cmd622516948-exit"
2014/12/12 15:39:39 packer-provisioner-shell: 2014/12/12 15:39:39 Retryable error: Error uploading script: Upload failed with non-zero exit status: 1
2014/12/12 15:39:41 packer-provisioner-shell: 2014/12/12 15:39:41 [INFO] 109 bytes written for 'uploadData'
bug buildedocker

最有用的评论

对于我来说,这仅是在Packer在docker内部运行,然后尝试配置新的docker时发生的。 也许这做错了吗?

所有85条评论

只是一个跟进..当失败时,它使用的是最新的docker仓库中的docker 1.4.0。 我刚把它与修改后的Vagrantfile一起使用:

Vagrant.configure("2") do |config|
  #config.vm.box = "phusion-open-ubuntu-14.04-amd64"
  #config.vm.box_url = "https://oss-binaries.phusionpassenger.com/vagrant/boxes/latest/ubuntu-14.04-amd64-vbox.box"
  config.vm.box = "ubuntu"

  config.vm.provider :virtualbox do |vb|
    vb.name = 'packer-builder'
    vb.customize ["modifyvm", :id, "--memory", "2048" ]
    vb.customize ["modifyvm", :id, "--cpus",  "2" ]
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end

  if Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty?
    pkg_cmd = ""
    #pkg_cmd << "wget -q -O - https://get.docker.io/gpg | apt-key add -; "
    #pkg_cmd << "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list;"
    pkg_cmd << "apt-get update -qq; apt-get install -q -y --force-yes docker.io bsdtar; "
    pkg_cmd << "usermod -a -G docker vagrant; "
    pkg_cmd << "cd /usr/bin; wget -qO- https://dl.bintray.com/mitchellh/packer/packer_0.7.5_linux_amd64.zip | bsdtar -pxvf-; "
    pkg_cmd << "sudo chmod +x /usr/bin/packer*; "
    config.vm.provision :shell, :inline => pkg_cmd
  end
end

这将安装Docker 1.0.1 ...,并且可以与相同的Packer文件完美配合。

工作的Docker版本:

Client version: 1.0.1
Client API version: 1.12
Go version (client): go1.2.1
Git commit (client): 990021a
Server version: 1.0.1
Server API version: 1.12
Go version (server): go1.2.1
Git commit (server): 990021a

不工作:

Client version: 1.4.0
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 4595d4f
OS/Arch (client): linux/amd64
Server version: 1.4.0
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 4595d4f

好了,晚上做了最后的更新……看起来是Docker 1.4.0的问题。 Docker 1.3.3工作正常:

Client version: 1.3.3
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): d344625
OS/Arch (client): linux/amd64
Server version: 1.3.3
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): d344625

看起来是Docker 1.4.0的问题。 Docker 1.3.3工作正常:

是的,这也是我想出的结论

确认使用Docker 1.4.1时仍然存在问题

重新产生问题的json文件:

{
  "builders": [
    {
      "type": "docker",
      "image": "ubuntu:latest",
      "pull": true,
      "export_path": "docker-burn.tar"
    }
  ],
  "provisioners": [
    {
      "type": "shell",
      "inline": [
        "set -x",
        "set -e",
        "date"
      ]
    }
  ]
}

:+1:在这里一样!

天真的修复将如下所示:

https://github.com/mariussturm/packer/commit/3a286ab6bdba7b8e5bf6a43c357a0ffeacd3dc97

这破坏了与Docker 1.3-的向后兼容性(没事,imo)

@mariussturm感谢您3a286ab6bdba7b8e5bf6a43c357a0ffeacd3dc97。 chef-solo预配器存在相关问题; 它运行的第一个命令(创建staging_directory )将杀死容器,从而结束构建。 您的解决方案也可以解决该问题。

我也可以使用Docker 1.4.1确认这个问题

使用script元素时,我也遇到相同的问题(在使用inline时报告在这里)。
因此,从本质上讲,现在无法使用带有任何Shell Provisioning的Packer构建docker v1.4.x映像。

错误是:

2014/12/25 12:21:30 packer-builder-docker: 2014/12/25 12:21:30 Executing in container 600d9cc40feaa99ee3f6b9ad6daf440dc79265abbbfa8676a45904463df1a353: "(cp /packer-files/upload674827840 /tmp/script.sh) >/packer-files/cmd940924575 2>&1; echo $? >/packer-files/cmd940924575-exit"
==> docker: Provisioning with shell script: /home/dl/testsourcedir/hello.sh
2014/12/25 12:21:32 packer-provisioner-shell: 2014/12/25 12:21:32 Retryable error: Error uploading script: Upload failed with non-zero exit status: 1

使用预配器配置,例如:

 "provisioners" : [
    {
        "type" : "shell",
        "script" : "{{pwd}}/testsourcedir/hello.sh"
    }
    ],

和相应的简单shell脚本:

[dl<strong i="16">@localhost</strong> ~]$ cat testsourcedir/hello.sh
#!/bin/sh
echo "Hello"

+1,以及shell预配置程序的script变体。

+1
对于shell供应者的inline变体,该供应者对我来说失败了。

packer version
Packer v0.7.5
...
docker --version
Docker version 1.4.1, build 5bc2ff8

基于上面的评论(和@mariussturm的提交),我构建了一个虚拟箱盒,您可以将其与boot2docker一起使用,并且将marius的更改烘焙到了packer中。 这需要打包程序的源代码和@YungSang的源代码,以用于如何从boot2docker的iso中构建无业游民的盒子。 开源求救!

希望这对想要在无业游民中使用docker 1.4.1和packer的人有所帮助。

https://atlas.hashicorp.com/iansmith/boxes/boot2docker-plus-packer

啊! 刚遇到这个。 为我的项目准备的齿轮扳手。

我也遇到了这个问题。 当前的解决方法是什么? 将Docker降级到1.3.3?

我不得不将docker降级为1.3.3。 那是我目前的解决方法。

@vitorcoxta@yanaga或者,您可以使用mariussturm建议的修复程序来重建自己的打包程序二进制版本:

https://github.com/mitchellh/packer/commit/3a286ab6bdba7b8e5bf6a43c357a0ffeacd3dc97

对于新的docker 1.5,由于此错误,看来我们仍然必须使用1.3.3:

是否有预计将其发布到新版本中的ETA? 0.76,也许?

:+1:

遇到以下问题:

Docker version 1.5.0, build a8a31ef
Packer v0.7.5
Boot2Docker-cli version: v1.5.0
Git commit: ccd9032

Darwin 13.4.0 Darwin Kernel Version 13.4.0: Wed Dec 17 19:05:52 PST 2014; root:xnu-2422.115.10~1/RELEASE_X86_64 x86_64

我创建了一个github存储库https://github.com/stefancocora/packer-issue1752-fix ,其中包含针对master分支构建的打包程序二进制文件( amd64 ),其中修复了mariussturm这个问题。
在打包程序维护人员合并此问题的修补程序并发布新版本时,可以使用我构建的二进制文件。
我构建的二进制文件对我来说是完美的,我添加了一种在上述github存储库中测试它们的方法,请参阅README.md

@stefancocora非常感谢您的资料库! 我可以确认该版本有效(在Fedora 21 / x86_64上,使用docker 1.5.0)。

我注意到使用exec代替attach件事:最好还使用-t标志,以便分配tty和sudo工具/etc/sudoers具有Defaults requiretty /etc/sudoers )。

感谢您对@ankon进行测试,关于-t好处,没有考虑。
我刚刚使用-t标志创建了一个为docker编译的打包程序二进制文件。
不幸的是,它无法生成映像,我不知道是什么导致了该故障。
在没有-t情况下将打包程序还原到补丁程序,我可以成功构建docker映像。

来自打包器构建的-t错误输出

...
    docker: Status: Image is up to date for devopsil/puppet:latest
==> docker: Starting docker container...
    docker: Run command: docker run -v /tmp/packer-docker141026721:/packer-files -d -i -t devopsil/puppet /bin/bash
    docker: Container ID: 72e09e8c029a7321143cac4baf012525e1a816e35770a1cc216327005caf1912
==> docker: Uploading ./modules => /tmp/modules
==> docker: Killing the container: 72e09e8c029a7321143cac4baf012525e1a816e35770a1cc216327005caf1912
Build 'docker' errored: Upload failed with non-zero exit status: 1

==> Some builds didn't complete successfully and had errors:
--> docker: Upload failed with non-zero exit status: 1

==> Builds finished but no artifacts were created.

您始终可以在sudoers文件中禁用requiretty ,这将使sudo正常工作。

@stefancocora如果您希望我可以通过分支提交PR,则为OSX编译了补丁。 现在,如果有人要他们在这里,他们就是

@stefancocora您的存储库适用于

@chiefy不用担心PR,我希望linux的构建以及osx构建不需要很长时间。 我希望这很快会在上游打包程序代码中得到解决...

@stefancocora :+1:是的,我同意。

+1

我也看到了这个问题。

$ packer version
Packer v0.7.5

$ docker version
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef

你好
尽管此问题尚未解决,并且建议的补丁似乎可以正常工作,但为方便起见,我在此处将预构建的linux_x64版本推送到bintray。 这是当前主HEAD的构建,因为我无法在v0.7.5标签上构建。

我一直在研究一个相关的问题: https :

此补丁解决了最初的问题,但现在运行挂起

2015/03/17 13:17:47 packer-builder-docker:2015/03/17 13:17:47等待退出代码出现以用于远程命令...

我连接到容器并验证命令是否已运行,并且退出代码0已写入退出文件,但是构建从未进行。 我在Ubuntu14.04和CentOS6上看到Shell和Chef-solo设置程序都存在相同的问题。

Packer版本0.7.5使用来自Chiefy的修补二进制文件
使用Virtualbox驱动程序的docker-machine版本0.1.0
主机正在运行OSX 10.9.5

$泊坞窗版本
客户端版本:1.5.0
客户端API版本:1.17
Go版本(客户端):go1.4.1
Git提交(客户端):a8a31ef
操作系统/ Arch(客户端):darwin / amd64
服务器版本:1.5.0
服务器API版本:1.17
Go版本(服务器):go1.4.1
Git提交(服务器):a8a31ef

https://mail.google.com/mail/u/0/?shva=1#label/Hashicorp%2Fpacker / 14c1113f7041d655

@kikitux仅供参考:这是您Gmail收件箱中内容的链接。 我们看不到。

Packer 0.7.5和docker 1.5.0也有此问题

还可以使用Boot2Docker-cli version: v1.5.0在OSX上重现

打包器版本

Packer v0.7.5

码头工人版本

Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): darwin/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef

@alkersan提出的docker主机。 我在docker客户端和服务器上都具有相同的docker版本(1.5),而打包器上均装有补丁程序版本。 它在docker服务器上工作正常,但挂在客户端上

+1

+1

Docker 1.6一样

我已经使用Docker 1.6在CentOS 7上测试了@stefancocora提供的二进制文件,

我使用Docker 1.6在Fedora 21的基础上编译了自己的二进制文件,并且打包程序工作了。

使用远程docker主机时仍然为我挂起,但在本地工作正常

ubuntu trusty和docker 1.6也会失败

在两个方面也都有问题:
OpenSUSE 13.1 x86_64 && OSX 10.10

与:

$ packer version
Packer v0.7.5

$ docker version
Client version: 1.6.0
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 4749651
OS/Arch (client): linux/amd64
Server version: 1.6.0
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 4749651
OS/Arch (server): linux/amd64

我最终降级到docker 1.3.2可以在这里工作(在OpenSUSE系统上)。
我在OSX 10.10上尝试了1.3.2和1.3.0,没有运气。

好的,所以我了解到可能需要降级到docker 1.3.2才能使我的打包程序构建Shell脚本与Docker一起使用。 任何人都可以提供有关如何在Ubuntu(可信任)上安装docker 1.3.2的说明,我不知道如何。

好的找到了!

须藤apt-get install lxc-docker-1.3.2

这样就解决了问题。 我以前使用的是最新版本的docker,无论那个版本是什么。

似乎也无法在Ubuntu 14.04上使用Docker 1.6.0失败。
当执行d3netxer所说的“ sudo apt-get install lxc-docker-1.3.2”时(没有先卸载任何东西),它似乎可以工作。

@dietervds
您是否尝试过使用此问题的修复程序创建的二进制文件?
https://github.com/stefancocora/packer-issue1752-fix

@mindscratch在16天前确认,我创建的二进制文件可与docker 1.6CentOS7

@stefancocora
我将SELinux设置为Permissive Mode后, https://github.com/stefancocora/packer-issue1752-fix在Docker 1.6.0上的Fedora 21上对我有效。 它也可以在带有Docker 1.5.0的CentOS 7,带有SELinux到Permissive的CentOS 7上以及在带有Docker 1.5.0的Ubuntu 15.04上工作。

这仅适用于Shell脚本配置吗? chef-solo预配器似乎也失败了,但是我对docker / chef / packer还是很陌生,所以我的问题可能在其他地方。

版本:
Docker v1.5
打包机v0.7.5

模板:

{
  "builders": [
    {
      "type": "docker",
      "image": "ubuntu:14.04",
      "export_path": "{{pwd}}/utils.img"
    }
  ],
  "provisioners": [
    {
      "type": "chef-solo",
      "cookbook_paths": "{{pwd}}/cookbooks"
    }
  ]
}

chef-solo预配置程序基于shell预配置程序,因此两者均已损坏。 很遗憾,这个错误没有引起核心团队的注意。 似乎运送新产品比维护现有产品更为重要。 :(

确实。

@mitchellh ,这个错误是否有可能在0.8版本中得到修复?

你好

此修补程序的版本何时才能正式发布? 它也对我有用(https://github.com/stefancocora/packer-issue1752-fix)

谢谢

+1

对于任何想做docker + chef的人来说,这都是一个非常严重的阻碍。 如果需要修补工具链的一半,我可能无法为我的团队推荐。

实际上,在使用docker构建器时,它会影响很多部分。
幸运的是,补丁程序可以正常工作。

2015年5月21日星期四下午5:57,Matt Chu [email protected]写道:

+1

对于任何想做docker + chef的人来说,这都是一个非常严重的阻碍。
如果需要修补哪些内容,我可能无法为我的团队推荐
感觉就像工具链的一半。

-
直接回复此电子邮件或在GitHub上查看
https://github.com/mitchellh/packer/issues/1752#issuecomment -104444469。

我也被禁止使用docker + Chef,如
我希望维护人员能尽快合并它(事实是他们没有让我担心他们可能会完全想到另一种解决方案?)

刚好碰到这个。 将尝试作为解决方案的补丁。 使用docker-machine和docker 1.6.2

固定!

谢谢@mitchellh !!!! 我正要赞成Docerkfiles(颤栗)的退休封隔器,因为这是打破我的部署。 您仍然是我永远的英雄之一,为我节省了数小时的生命。

太棒了!! \ m /
谢谢!!

2015年5月29日20:56,Mitchell Hashimoto通知单@ github.com
写道:

封闭#1752 https://github.com/mitchellh/packer/issues/1752。

-
直接回复此电子邮件或在GitHub上查看
https://github.com/mitchellh/packer/issues/1752#event -317473314。

巨大的帮助,谢谢!

对于长时间的延迟,我深表歉意:(我们很快就会发布Packer,其中包含许多Docker错误修复程序。

好消息! 将会很期待;)

谢谢! 一直期待着这个!

@mitchellh什么时候计划包含此修复程序的下一个版本?

@stefancocora感谢您的临时修订!

很棒的家伙。 做得好!

@aidanjl没问题,这是我至少可以做的事情,以便使@mariussturm修复程序对于任何人都易于访问!

@mitchellh也请通过此修复程序升级Atlas使用的

我目前在OS X上运行Packer 0.8-dev和Docker 1.6.2,仍然看到此问题。

==> docker: Provisioning with shell script: /var/folders/7z/3_4h7g_x55b_stn8nyd2w4mc0000gn/T/packer-shell921079459
2015/06/19 15:13:00 packer-provisioner-shell: 2015/06/19 15:13:00 [INFO] 92 bytes written for 'uploadData'
2015/06/19 15:13:00 [INFO] 92 bytes written for 'uploadData'
2015/06/19 15:13:00 packer-builder-docker: 2015/06/19 15:13:00 Executing in container b77320622ccd70b787bf85e0d88680db0a8a29ea4946aad7d18ceb7dc181362c: "(command cp /packer-files/upload556204673 /tmp/script_7943.sh) >/packer-files/cmd576371692 2>&1; echo $? >/packer-files/cmd576371692-exit"
2015/06/19 15:13:02 packer-builder-docker: 2015/06/19 15:13:02 Waiting for exit code to appear for remote command...

我还尝试过降级到Docker 1.3.3并遇到了同样的事情。

Packer v0.8.0已被标记并昨天发布到下载页面,这实际上应该可以解决此问题。 在将Packer 0.7.5升级到0.8.0之后,它对Docker 1.5.0来说适用。

已验证并在Ubuntu 14.04 x64主机上与Packer v0.8.0和docker Client version: 1.6.2一起正常工作。

我仍然在osx上遇到此问题。 Packer版本0.8.0,docker版本1.6.2和1.7.0。 可以去Linux发行版看看我是否还有运气。

与@ lukeowen89相同
有点麻烦,目前我仍然无法在osx上打包。

在OSX上对我来说也很糟糕。 Packer 0.8.1,Docker 1.7.1

加壳程序调试日志

2015/07/15 23:42:08 [INFO] Packer version: 0.8.1  872e78d5b0a387eb3b87ddeef210264c3199d178+CHANGES
2015/07/15 23:42:08 Packer Target OS/Arch: darwin amd64
2015/07/15 23:42:08 Built with Go Version: go1.4.2
2015/07/15 23:42:08 [DEBUG] Discovered plugin: amazon-chroot = /usr/local/bin/packer-builder-amazon-chroot
2015/07/15 23:42:08 [DEBUG] Discovered plugin: amazon-ebs = /usr/local/bin/packer-builder-amazon-ebs
2015/07/15 23:42:08 [DEBUG] Discovered plugin: amazon-instance = /usr/local/bin/packer-builder-amazon-instance
2015/07/15 23:42:08 [DEBUG] Discovered plugin: digitalocean = /usr/local/bin/packer-builder-digitalocean
2015/07/15 23:42:08 [DEBUG] Discovered plugin: docker = /usr/local/bin/packer-builder-docker
2015/07/15 23:42:08 [DEBUG] Discovered plugin: file = /usr/local/bin/packer-builder-file
2015/07/15 23:42:08 [DEBUG] Discovered plugin: googlecompute = /usr/local/bin/packer-builder-googlecompute
2015/07/15 23:42:08 [DEBUG] Discovered plugin: null = /usr/local/bin/packer-builder-null
2015/07/15 23:42:08 [DEBUG] Discovered plugin: openstack = /usr/local/bin/packer-builder-openstack
2015/07/15 23:42:08 [DEBUG] Discovered plugin: parallels-iso = /usr/local/bin/packer-builder-parallels-iso
2015/07/15 23:42:08 [DEBUG] Discovered plugin: parallels-pvm = /usr/local/bin/packer-builder-parallels-pvm
2015/07/15 23:42:08 [DEBUG] Discovered plugin: qemu = /usr/local/bin/packer-builder-qemu
2015/07/15 23:42:08 [DEBUG] Discovered plugin: virtualbox-iso = /usr/local/bin/packer-builder-virtualbox-iso
2015/07/15 23:42:08 [DEBUG] Discovered plugin: virtualbox-ovf = /usr/local/bin/packer-builder-virtualbox-ovf
2015/07/15 23:42:08 [DEBUG] Discovered plugin: vmware-iso = /usr/local/bin/packer-builder-vmware-iso
2015/07/15 23:42:08 [DEBUG] Discovered plugin: vmware-vmx = /usr/local/bin/packer-builder-vmware-vmx
2015/07/15 23:42:08 [DEBUG] Discovered plugin: atlas = /usr/local/bin/packer-post-processor-atlas
2015/07/15 23:42:08 [DEBUG] Discovered plugin: compress = /usr/local/bin/packer-post-processor-compress
2015/07/15 23:42:08 [DEBUG] Discovered plugin: docker-import = /usr/local/bin/packer-post-processor-docker-import
2015/07/15 23:42:08 [DEBUG] Discovered plugin: docker-push = /usr/local/bin/packer-post-processor-docker-push
2015/07/15 23:42:08 [DEBUG] Discovered plugin: docker-save = /usr/local/bin/packer-post-processor-docker-save
2015/07/15 23:42:08 [DEBUG] Discovered plugin: docker-tag = /usr/local/bin/packer-post-processor-docker-tag
2015/07/15 23:42:08 [DEBUG] Discovered plugin: vagrant = /usr/local/bin/packer-post-processor-vagrant
2015/07/15 23:42:08 [DEBUG] Discovered plugin: vagrant-cloud = /usr/local/bin/packer-post-processor-vagrant-cloud
2015/07/15 23:42:08 [DEBUG] Discovered plugin: vsphere = /usr/local/bin/packer-post-processor-vsphere
2015/07/15 23:42:08 [DEBUG] Discovered plugin: ansible-local = /usr/local/bin/packer-provisioner-ansible-local
2015/07/15 23:42:08 [DEBUG] Discovered plugin: chef-client = /usr/local/bin/packer-provisioner-chef-client
2015/07/15 23:42:08 [DEBUG] Discovered plugin: chef-solo = /usr/local/bin/packer-provisioner-chef-solo
2015/07/15 23:42:08 [DEBUG] Discovered plugin: file = /usr/local/bin/packer-provisioner-file
2015/07/15 23:42:08 [DEBUG] Discovered plugin: powershell = /usr/local/bin/packer-provisioner-powershell
2015/07/15 23:42:08 [DEBUG] Discovered plugin: puppet-masterless = /usr/local/bin/packer-provisioner-puppet-masterless
2015/07/15 23:42:08 [DEBUG] Discovered plugin: puppet-server = /usr/local/bin/packer-provisioner-puppet-server
2015/07/15 23:42:08 [DEBUG] Discovered plugin: salt-masterless = /usr/local/bin/packer-provisioner-salt-masterless
2015/07/15 23:42:08 [DEBUG] Discovered plugin: shell = /usr/local/bin/packer-provisioner-shell
2015/07/15 23:42:08 [DEBUG] Discovered plugin: shell-local = /usr/local/bin/packer-provisioner-shell-local
2015/07/15 23:42:08 [DEBUG] Discovered plugin: windows-restart = /usr/local/bin/packer-provisioner-windows-restart
2015/07/15 23:42:08 [DEBUG] Discovered plugin: windows-shell = /usr/local/bin/packer-provisioner-windows-shell
2015/07/15 23:42:08 Detected home directory from env var: /Users/bob
2015/07/15 23:42:08 Detected home directory from env var: /Users/bob
2015/07/15 23:42:08 Attempting to open config file: /Users/bob/.packerconfig
2015/07/15 23:42:08 [WARN] Config file doesn't exist: /Users/bob/.packerconfig
2015/07/15 23:42:08 Packer config: &{DisableCheckpoint:false DisableCheckpointSignature:false PluginMinPort:10000 PluginMaxPort:25000 Builders:map[digitalocean:/usr/local/bin/packer-builder-digitalocean googlecompute:/usr/local/bin/packer-builder-googlecompute virtualbox-ovf:/usr/local/bin/packer-builder-virtualbox-ovf amazon-instance:/usr/local/bin/packer-builder-amazon-instance vmware-vmx:/usr/local/bin/packer-builder-vmware-vmx amazon-chroot:/usr/local/bin/packer-builder-amazon-chroot null:/usr/local/bin/packer-builder-null vmware-iso:/usr/local/bin/packer-builder-vmware-iso openstack:/usr/local/bin/packer-builder-openstack parallels-iso:/usr/local/bin/packer-builder-parallels-iso parallels-pvm:/usr/local/bin/packer-builder-parallels-pvm qemu:/usr/local/bin/packer-builder-qemu virtualbox-iso:/usr/local/bin/packer-builder-virtualbox-iso amazon-ebs:/usr/local/bin/packer-builder-amazon-ebs docker:/usr/local/bin/packer-builder-docker file:/usr/local/bin/packer-builder-file] PostProcessors:map[atlas:/usr/local/bin/packer-post-processor-atlas docker-tag:/usr/local/bin/packer-post-processor-docker-tag vagrant-cloud:/usr/local/bin/packer-post-processor-vagrant-cloud vsphere:/usr/local/bin/packer-post-processor-vsphere compress:/usr/local/bin/packer-post-processor-compress docker-import:/usr/local/bin/packer-post-processor-docker-import docker-push:/usr/local/bin/packer-post-processor-docker-push docker-save:/usr/local/bin/packer-post-processor-docker-save vagrant:/usr/local/bin/packer-post-processor-vagrant] Provisioners:map[shell-local:/usr/local/bin/packer-provisioner-shell-local windows-shell:/usr/local/bin/packer-provisioner-windows-shell ansible-local:/usr/local/bin/packer-provisioner-ansible-local chef-client:/usr/local/bin/packer-provisioner-chef-client file:/usr/local/bin/packer-provisioner-file salt-masterless:/usr/local/bin/packer-provisioner-salt-masterless shell:/usr/local/bin/packer-provisioner-shell chef-solo:/usr/local/bin/packer-provisioner-chef-solo powershell:/usr/local/bin/packer-provisioner-powershell puppet-masterless:/usr/local/bin/packer-provisioner-puppet-masterless puppet-server:/usr/local/bin/packer-provisioner-puppet-server windows-restart:/usr/local/bin/packer-provisioner-windows-restart]}
2015/07/15 23:42:08 Setting cache directory: /Users/bob/Projects/garbanzo/packer_cache
2015/07/15 23:42:08 Detected home directory from env var: /Users/bob
2015/07/15 23:42:08 Loading builder: docker
2015/07/15 23:42:08 Creating plugin client for path: /usr/local/bin/packer-builder-docker
2015/07/15 23:42:08 Starting plugin: /usr/local/bin/packer-builder-docker []string{"/usr/local/bin/packer-builder-docker"}
2015/07/15 23:42:08 Waiting for RPC address for: /usr/local/bin/packer-builder-docker
2015/07/15 23:42:08 packer-builder-docker: 2015/07/15 23:42:08 Plugin minimum port: 10000
2015/07/15 23:42:08 packer-builder-docker: 2015/07/15 23:42:08 Plugin maximum port: 25000
2015/07/15 23:42:08 packer-builder-docker: 2015/07/15 23:42:08 Plugin address: unix /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-plugin389384987
2015/07/15 23:42:08 packer-builder-docker: 2015/07/15 23:42:08 Waiting for connection...
2015/07/15 23:42:08 packer-builder-docker: 2015/07/15 23:42:08 Serving a plugin connection...
2015/07/15 23:42:08 Loading provisioner: shell
2015/07/15 23:42:08 Creating plugin client for path: /usr/local/bin/packer-provisioner-shell
2015/07/15 23:42:08 Starting plugin: /usr/local/bin/packer-provisioner-shell []string{"/usr/local/bin/packer-provisioner-shell"}
2015/07/15 23:42:08 Waiting for RPC address for: /usr/local/bin/packer-provisioner-shell
2015/07/15 23:42:08 packer-provisioner-shell: 2015/07/15 23:42:08 Plugin minimum port: 10000
2015/07/15 23:42:08 packer-provisioner-shell: 2015/07/15 23:42:08 Plugin maximum port: 25000
2015/07/15 23:42:08 packer-provisioner-shell: 2015/07/15 23:42:08 Plugin address: unix /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-plugin592962254
2015/07/15 23:42:08 packer-provisioner-shell: 2015/07/15 23:42:08 Waiting for connection...
2015/07/15 23:42:08 packer-provisioner-shell: 2015/07/15 23:42:08 Serving a plugin connection...
2015/07/15 23:42:08 Loading post-processor: docker-tag
2015/07/15 23:42:08 Creating plugin client for path: /usr/local/bin/packer-post-processor-docker-tag
2015/07/15 23:42:08 Starting plugin: /usr/local/bin/packer-post-processor-docker-tag []string{"/usr/local/bin/packer-post-processor-docker-tag"}
2015/07/15 23:42:08 Waiting for RPC address for: /usr/local/bin/packer-post-processor-docker-tag
2015/07/15 23:42:08 packer-post-processor-docker-tag: 2015/07/15 23:42:08 Plugin minimum port: 10000
2015/07/15 23:42:08 packer-post-processor-docker-tag: 2015/07/15 23:42:08 Plugin maximum port: 25000
2015/07/15 23:42:08 packer-post-processor-docker-tag: 2015/07/15 23:42:08 Plugin address: unix /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-plugin099680253
2015/07/15 23:42:08 packer-post-processor-docker-tag: 2015/07/15 23:42:08 Waiting for connection...
2015/07/15 23:42:08 packer-post-processor-docker-tag: 2015/07/15 23:42:08 Serving a plugin connection...
2015/07/15 23:42:08 ui: docker output will be in this color.
2015/07/15 23:42:08 ui: 
2015/07/15 23:42:08 Build debug mode: false
2015/07/15 23:42:08 Force build: false
2015/07/15 23:42:08 Preparing build: docker
docker output will be in this color.

2015/07/15 23:42:08 Waiting on builds to complete...
2015/07/15 23:42:08 Starting build run: docker
2015/07/15 23:42:08 Running builder: docker
2015/07/15 23:42:08 packer-builder-docker: 2015/07/15 23:42:08 [DEBUG] Docker version: 1.7.1
2015/07/15 23:42:08 ui: ==> docker: Creating a temporary directory for sharing data...
==> docker: Creating a temporary directory for sharing data...
2015/07/15 23:42:08 ui: ==> docker: Pulling Docker image: gliderlabs/herokuish
==> docker: Pulling Docker image: gliderlabs/herokuish
2015/07/15 23:42:08 packer-builder-docker: 2015/07/15 23:42:08 Executing: /usr/local/bin/docker [pull gliderlabs/herokuish]
2015/07/15 23:42:11 ui:     docker: latest: Pulling from gliderlabs/herokuish
    docker: latest: Pulling from gliderlabs/herokuish
2015/07/15 23:42:11 ui:     docker: 835c565d00e2: Already exists
    docker: 835c565d00e2: Already exists
2015/07/15 23:42:11 ui:     docker: c5c659229e15: Already exists
    docker: c5c659229e15: Already exists
2015/07/15 23:42:11 ui:     docker: 9a8403cd4d99: Already exists
    docker: 9a8403cd4d99: Already exists
2015/07/15 23:42:11 ui:     docker: 89fc314a0a6e: Already exists
    docker: 89fc314a0a6e: Already exists
2015/07/15 23:42:11 ui:     docker: d257698c42c5: Already exists
    docker: d257698c42c5: Already exists
2015/07/15 23:42:11 ui:     docker: c6c6baedb602: Already exists
    docker: c6c6baedb602: Already exists
2015/07/15 23:42:11 ui:     docker: c6c6baedb602: Already exists
    docker: c6c6baedb602: Already exists
2015/07/15 23:42:11 ui:     docker: Digest: sha256:4b08475f91eaccceb40fcbb5e0c43a992257b1bdedbf86f2777f458da9a0e2cd
2015/07/15 23:42:11 ui:     docker: Status: Image is up to date for gliderlabs/herokuish:latest
    docker: Digest: sha256:4b08475f91eaccceb40fcbb5e0c43a992257b1bdedbf86f2777f458da9a0e2cd
    docker: Status: Image is up to date for gliderlabs/herokuish:latest
2015/07/15 23:42:11 ui: ==> docker: Starting docker container...
==> docker: Starting docker container...
2015/07/15 23:42:11 ui:     docker: Run command: docker run -v /Users/bob/Projects/garbanzo:/tmp/app -v /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-docker638187454:/packer-files -d -i -t gliderlabs/herokuish /bin/bash
2015/07/15 23:42:11 packer-builder-docker: 2015/07/15 23:42:11 Starting container with args: [run -v /Users/bob/Projects/garbanzo:/tmp/app -v /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-docker638187454:/packer-files -d -i -t gliderlabs/herokuish /bin/bash]
    docker: Run command: docker run -v /Users/bob/Projects/garbanzo:/tmp/app -v /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-docker638187454:/packer-files -d -i -t gliderlabs/herokuish /bin/bash
2015/07/15 23:42:11 packer-builder-docker: 2015/07/15 23:42:11 Waiting for container to finish starting
2015/07/15 23:42:11 ui:     docker: Container ID: cc6a7056923234a1264718283c1a58a1c49796d64458cefe84e5ee4941c4bf16
    docker: Container ID: cc6a7056923234a1264718283c1a58a1c49796d64458cefe84e5ee4941c4bf16
2015/07/15 23:42:11 packer-builder-docker: 2015/07/15 23:42:11 Running the provision hook
2015/07/15 23:42:11 ui: ==> docker: Provisioning with shell script: /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-shell845253589
2015/07/15 23:42:11 packer-provisioner-shell: 2015/07/15 23:42:11 Opening /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-shell845253589 for reading
==> docker: Provisioning with shell script: /var/folders/4j/hd7wss1n4xzc8xn224xsyls80000gn/T/packer-shell845253589
2015/07/15 23:42:11 packer-provisioner-shell: 2015/07/15 23:42:11 [INFO] 44 bytes written for 'uploadData'
2015/07/15 23:42:11 [INFO] 44 bytes written for 'uploadData'
2015/07/15 23:42:11 packer-builder-docker: 2015/07/15 23:42:11 Executing in container cc6a7056923234a1264718283c1a58a1c49796d64458cefe84e5ee4941c4bf16: "(command cp /packer-files/upload803520517 /tmp/script_7943.sh) >/packer-files/cmd416685472 2>&1; echo $? >/packer-files/cmd416685472-exit"
2015/07/15 23:42:13 packer-builder-docker: 2015/07/15 23:42:13 Waiting for exit code to appear for remote command...
^C
2015/07/15 23:50:00 Closing stdin because interrupt received.
2015/07/15 23:50:00 Stopping build: docker
2015/07/15 23:50:00 packer-post-processor-docker-tag: 2015/07/15 23:50:00 Received interrupt signal (count: 1). Ignoring.
2015/07/15 23:50:00 packer-provisioner-shell: 2015/07/15 23:50:00 Received interrupt signal (count: 1). Ignoring.
2015/07/15 23:50:00 packer-builder-docker: 2015/07/15 23:50:00 Received interrupt signal (count: 1). Ignoring.
2015/07/15 23:50:00 packer-builder-docker: 2015/07/15 23:50:00 Cancelling the step runner...
2015/07/15 23:50:01 packer-builder-docker: 2015/07/15 23:50:01 Cancelling provisioning due to interrupt...
2015/07/15 23:50:01 Provisioner.Cancel err: unexpected EOF
2015/07/15 23:50:01 /usr/local/bin/packer-provisioner-shell: plugin process exited
2015/07/15 23:50:01 ui: ==> docker: Killing the container: cc6a7056923234a1264718283c1a58a1c49796d64458cefe84e5ee4941c4bf16
==> docker: Killing the container: cc6a7056923234a1264718283c1a58a1c49796d64458cefe84e5ee4941c4bf16
2015/07/15 23:50:01 Build cancelled: docker
2015/07/15 23:50:01 ui: Build 'docker' finished.
2015/07/15 23:50:01 Builds completed. Waiting on interrupt barrier...
2015/07/15 23:50:01 ui: Cleanly cancelled builds after being interrupted.
2015/07/15 23:50:01 waiting for all plugin processes to complete...
Build 'docker' finished.
Cleanly cancelled builds after being interrupted.
2015/07/15 23:50:01 /usr/local/bin/packer-post-processor-docker-tag: plugin process exited
2015/07/15 23:50:01 /usr/local/bin/packer-builder-docker: plugin process exited

在我杀死它之前在容器上戳了一下:

$ ls /packer-files
cmd416685472       cmd416685472-exit
$ cat /packer-files/cmd416685472
cp: cannot stat '/packer-files/upload803520517': No such file or directory

同上,在Packer 0.8.5和Docker 1.8.1的OSX上遇到此问题。

@解密我在这里为此打开了一个新期刊:#2675

这在带包装器0.10.2的Docker 1.12.1上仍然是一个问题

我确认使用Docker 1.12.1和Packer 0.11.0存在相同的问题。

对于我来说,这仅是在Packer在docker内部运行,然后尝试配置新的docker时发生的。 也许这做错了吗?

此页面是否有帮助?
0 / 5 - 0 等级