Skip to content
This repository has been archived by the owner on Jan 28, 2021. It is now read-only.

Jenkinsで実施するとエラーになる #38

Closed
km45 opened this issue Nov 5, 2018 · 5 comments
Closed

Jenkinsで実施するとエラーになる #38

km45 opened this issue Nov 5, 2018 · 5 comments

Comments

@km45
Copy link
Owner

km45 commented Nov 5, 2018

+ make sync
docker-compose exec --user $(id -u):$(id -g) develop npm ci
Traceback (most recent call last):
  File "bin/docker-compose", line 3, in <module>
  File "compose/cli/main.py", line 88, in main
  File "compose/cli/main.py", line 140, in perform_command
  File "compose/cli/main.py", line 486, in exec_command
  File "site-packages/dockerpty/pty.py", line 338, in start
  File "site-packages/dockerpty/io.py", line 32, in set_blocking
ValueError: file descriptor cannot be a negative integer (-1)
Failed to execute script docker-compose
make: *** [sync] Error 255

というエラーになる。

docker/compose#3352
にあった -T を付けることで動作はするようになったが、
ローカルで実行する際に標準出力にでないようになってしまった。

そのため -T をつけるかどうかをスイッチング可能にしたい。

@km45
Copy link
Owner Author

km45 commented Nov 18, 2018

jenkins 環境を docker で用意して docker in docker で動作確認しようと思い、
docker.socket を共有する方法を試してみたが、
jenkins 用 docker container 内の jenkins ユーザで docker を動かすのがうまくいかなかった。

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/images/json: dial unix /var/run/docker.sock: connect: permission denied

@km45
Copy link
Owner Author

km45 commented Nov 18, 2018

make に TTY オプションを追加したので、これで要件が満たせているか確認する。

@km45
Copy link
Owner Author

km45 commented Nov 19, 2018

make sync の実行ですぐJenkinsジョブが失敗する現象はなくなったが、
make sync が5分以上待っても終わらなかった。

以下のようなエラーメッセージが出ていたのでそれが原因ではないかと思う。

make sync TTY=false
$(misc/docker-exec-command -t false) develop npm ci
npm WARN prepare removing existing node_modules/ before installation
Unhandled rejection Error: EACCES: permission denied, mkdir '/.npm'
Unhandled rejection Error: EACCES: permission denied, mkdir '/.npm'
Unhandled rejection Error: EACCES: permission denied, mkdir '/.npm'

@km45
Copy link
Owner Author

km45 commented Nov 19, 2018

uid / gid の問題と思われるので、
docker-compose をバージョンアップして docker-compose exec --build-arg による切り替えが
動作するようにしたところ問題は解消した。

本対応としては npm がキャッシュなどで使用するディレクトリを移動するなどが必要な認識。

@km45
Copy link
Owner Author

km45 commented Nov 19, 2018

本 issue での対応については動作確認できたのでマージする。

@km45 km45 closed this as completed in ad8f726 Nov 19, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant