docker-composeのバグを踏んだのでアップグレードした話
タイトルの通り。
経緯とか
mimikun✅: "ビルドしようと思ったら、以下の通りのエラーが発生" - mimikun丼
Mastodonというアプリケーションがある。
このアプリケーションはDockerを使ってサクッと構築できる。
今日(2018/03/14)、docker-compose buildをしようとしたら、このようなエラーが表示された。
$ sudo docker-compose build redis uses an image, skipping db uses an image, skipping Building streaming Traceback (most recent call last): File "bin/docker-compose", line 6, in <module> File "compose/cli/main.py", line 71, in main File "compose/cli/main.py", line 124, in perform_command File "compose/cli/main.py", line 254, in build File "compose/project.py", line 372, in build File "compose/service.py", line 989, in build File "site-packages/docker/api/build.py", line 150, in build File "site-packages/docker/utils/build.py", line 14, in tar File "site-packages/docker/utils/utils.py", line 103, in create_archive IOError: Can not access file in context: /home/mastodon/mastodon/public/500.html Failed to execute script docker-compose
dockerとdocker-composeのバージョンは以下の通り。
$ sudo docker -v Docker version 17.12.1-ce, build 7390fc6 $ sudo docker-compose --version docker-compose version 1.19.0, build 9e633ef
色々しらべた。
docker-compose build on macos failing with procfs · Issue #5728 · docker/compose · GitHub
IOError: Can not access file in context · Issue #1813 · docker/for-win · GitHub
どうやら、v1.19.0がバグを持っているらしい。
なのでダウングレードかアップグレードをする必要がある。
自分はどうせなら新しい方がいいかな、と思い1.20.0-rc2を入れた。
手順は以下。
- バイナリをダウンロードしてきて、上書き保存
- 実行権限を付与
といったことをしている。
アップグレード(v1.20.0-rc2)
$ sudo curl -L https://github.com/docker/compose/releases/download/1.20.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
ダウングレード(v1.18.0)
$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose