LoginSignup
1
2

More than 5 years have passed since last update.

docker composeでファイルパスが長すぎるエラー(windows)

Last updated at Posted at 2016-12-21

概要

Docker compose ver1.9.0で扱うファイルのファイルパスが長すぎるとエラーになる問題への対処方法
とくにnodejs系のライブラリを扱う時に発生しやすいのではないかと

動作環境

Docker 1.12.5
Docker Compose 1.9.0
Windows 10 pro x64

エラー

cmd
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose\cli\main.py", line 62, in main
  File "compose\cli\main.py", line 114, in perform_command
  File "compose\cli\main.py", line 835, in up
  File "compose\project.py", line 382, in up
  File "compose\service.py", line 305, in ensure_image_exists
  File "compose\service.py", line 727, in build
  File "site-packages\docker\api\build.py", line 55, in build
  File "site-packages\docker\utils\utils.py", line 95, in tar
  File "tarfile.py", line 2007, in add
  File "tarfile.py", line 1879, in gettarinfo
WindowsError: [Error 3] The system cannot find the path specified: 'k:\\Users\\xxxx\\dev\\tmp\\foobar\\node_modules\\gulp-clean\\node_modules\\gulp-util\\node_modules\\dateformat\\node_modules\\meow\\node_modules\\normalize-package-data\\node_modules\\validate-npm-package-license\\node_modules\\spdx-correct\\node_modules\\spdx-license-ids\\LICENSE'
docker-compose returned -1

結論

Docker composeを一つ前のver 1.8.1にダウングレードする
レジストリやグループポリシーで回避する方法もありましたが、私のWindows10にはそれらの項目がなかったため、ダウングレードしました。
Windows Anniversary Update以降はこの制限が緩和されているようなので、Update可能な方はUpdateしてみてください

Windowsのbuild 1607以上にアップグレードした後に「グループポリシー」 - 「ファイルシステム」 - 「Win32の長いパスを有効にする」にしてください。

1.png

Githubでチケットが上がっていたので、そのうち対応されると思います
レジストリでの回避方法も記載されています(レジストリだけでは回避できませんでした。。。)
https://github.com/docker/docker-py/issues/1356

# ダウングレード方法

過去版のDocker for windowsのインストーラが見つかりませんでしたので、
Githubにあがってたdocker-compose.exeをローカルのdocker-compose.exeに上書きします

最新版のDockerと組み合わせると動作が不安定になることがあるので、非推奨とさせて頂きます

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2