環境
macOS Sierra
Version 10.12.3
Docker
Community Edition
Version 17.03.0-ce-mac2
Channel: stable
エラー内容
ある日突然、Dockerを起動しようとしたら下記のエラーが発生
$ docker-compose up
ERROR: Dependency conflict: an older version of the 'docker-py' package is polluting the namespace. Run the following command to remedy the issue:
pip uninstall docker docker-py; pip install docker
言われたとおりにやってみても治らない(T_T)
pip uninstall docker docker-py; pip install docker
原因
最近はAWS Elastic Beanstalkを使うことが多いのですが、そのクライアントであるawsebcliで使ってるライブラリのVersionの相性がよくないよう
https://github.com/docker/compose/issues/4569#issuecomment-284891018
解消方法
virtualenvを使って仮想環境に EB CLI をインストールすることで回避
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb-cli3-install-virtualenv.html
ページの内容の通りにインストール
ebを使うときには仮想環境をアクティブ化します
$ source ~/eb-ve/bin/activate
再度Docker起動
$ docker-compose up
ERROR: Dependency conflict: an older version of the 'docker-py' package is polluting the namespace. Run the following command to remedy the issue:
pip uninstall docker docker-py; pip install docker
以下を実行
pip uninstall docker docker-py; pip install docker
※~/eb-ve/bin/activateにパスが通ってない状態で
動作確認
dockerが起動できるようになってると思います。
ebも確認
$ eb ssh
INFO: Attempting to open port 22.
INFO: SSH port 22 open.
..
_____ _ _ _ ____ _ _ _
| ____| | __ _ ___| |_(_) ___| __ ) ___ __ _ _ __ ___| |_ __ _| | | __
| _| | |/ _` / __| __| |/ __| _ \ / _ \/ _` | '_ \/ __| __/ _` | | |/ /
| |___| | (_| \__ \ |_| | (__| |_) | __/ (_| | | | \__ \ || (_| | | <
|_____|_|\__,_|___/\__|_|\___|____/ \___|\__,_|_| |_|___/\__\__,_|_|_|\_\
Amazon Linux AMI
ssh、deployできればおk