非法指令4对于Mac上的docker-compose意味着什么?

时间:2015-11-08 15:27:09

标签: docker docker-compose

使用OSX 10.11.1,首先我从Docker站点安装了常规安装程序并获得了这个:

 → docker-compose --version 
Illegal Instruction: 4

然后我通过pip(最新版本)安装了它,并得到了它。

    → docker-compose --version
Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 9, in <module>
    load_entry_point('docker-compose==1.6.0dev', 'console_scripts', 'docker-compose')()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 357, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2394, in load_entry_point
    return ep.load()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2108, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/Library/Python/2.7/site-packages/compose/cli/main.py", line 20, in <module>
    from ..progress_stream import StreamOutputError
  File "/Library/Python/2.7/site-packages/compose/progress_stream.py", line 1, in <module>
    from compose import utils
  File "/Library/Python/2.7/site-packages/compose/utils.py", line 11, in <module>
    from six.moves.queue import Empty
ImportError: No module named queue

如何在Mac上安装Docker Compose的工作版本?

3 个答案:

答案 0 :(得分:3)

“非法指令:4”是10.11(https://github.com/docker/compose/issues/271)有时会发生的问题。

您可以从https://dl.bintray.com/docker-compose/master/安装一个没有该问题的master版本,因为它是基于较新版本的OSX构建的。

要进行pip install,你应该使用virtualenv(http://docs.docker.com/compose/install/#install-using-pip)。问题是OSX作为系统包安装的six版本非常陈旧,并且缺少编写所需的一些内容。

答案 1 :(得分:2)

我终于安装1.6.0dev,按照@dnephin的建议,在El Captain(10.11.02)上建立bacc2b7。

curl -L https://dl.bintray.com/docker-compose/master/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose 

但后来我收到了API版本不匹配错误

ERROR: client is newer than server (client API version: 1.22, server API version: 1.21)

所以我不得不创建一个新的boot2docker VM runnning docker 1.10。

docker-machine create -d virtualbox --virtualbox-boot2docker-url=http://sirile.github.io/files/boot2docker-1.10.iso dev

答案 2 :(得分:0)

更新:此问题似乎已在docker-compose 1.7.0-rc1中解决。 请参阅:https://github.com/docker/compose/issues/271#issuecomment-201203732

一旦1.7.0正式发布,你应该没问题。

与此同时,如果你出于任何原因需要一个工作的1.6。*二进制文件,你可以在这里下载一个,它已被编译为直接在有这个问题的旧mac上工作: https://github.com/WidgetsBurritos/docker-compose-old-mac