検索しても見つからなかったのでメモ。
Cannot create container for service web: failed to copy files: failed to open target
→ .dockerignoreで定義したディレクトリをホストでディレクトリ毎消したのが原因かも。
“ENOSPC: no space left on device
→ 一般的には、ホストのディスク容量かinode不足が原因だが。。。
事象1
rubocopやerdでも、全てダメな感じ。
% docker-compose run web java -jar db/schemaspy-6.1.0.jar -configFile db/schemaspy.properties Creating rails-app-origin_web_run ... error ERROR: for rails-app-origin_web_run Cannot create container for service web: failed to copy files: failed to open target /var/lib/docker/volumes/2d01425aab66c9fdda564882f01d7ae0ac98f47c6acea4e7e26e9442fc3d5733/_data/webpack-dev-middleware/CHANGELOG.md: open /var/lib/docker/volumes/2d01425aab66c9fdda564882f01d7ae0ac98f47c6acea4e7e26e9442fc3d5733/_data/webpack-dev-middleware/CHANGELOG.md: no space left on device ERROR: for web Cannot create container for service web: failed to copy files: failed to open target /var/lib/docker/volumes/2d01425aab66c9fdda564882f01d7ae0ac98f47c6acea4e7e26e9442fc3d5733/_data/webpack-dev-middleware/CHANGELOG.md: open /var/lib/docker/volumes/2d01425aab66c9fdda564882f01d7ae0ac98f47c6acea4e7e26e9442fc3d5733/_data/webpack-dev-middleware/CHANGELOG.md: no space left on device ERROR: Encountered errors while bringing up the project.
コンソールに接続して、実行すると行ける。
% docker exec -i -t rails-app-origin_web_1 bash bash-5.1# java -jar db/schemaspy-6.1.0.jar -configFile db/schemaspy.properties ____ _ ____ / ___| ___| |__ ___ _ __ ___ __ _/ ___| _ __ _ _ \___ \ / __| '_ \ / _ \ '_ ` _ \ / _` \___ \| '_ \| | | | ___) | (__| | | | __/ | | | | | (_| |___) | |_) | |_| | |____/ \___|_| |_|\___|_| |_| |_|\__,_|____/| .__/ \__, | |_| |___/ 6.1.0
試行錯誤
Docker DesktopをRestart → NG
コンテナとイメージ全消し → NG
コンテナ全消し+Docker DesktopをRestart → NG
コンテナとイメージ全消し+Docker DesktopをRestart → OK
コンテナ停止 % docker-compose down コンテナ全消し % docker container prune Are you sure you want to continue? [y/N] y イメージ全消し % docker images -aq | xargs docker rmi Docker DesktopをRestart コンテナ作成&起動 % docker-compose up --build
事象2
% docker-compose build db uses an image, skipping java uses an image, skipping Building web [+] Building 11.4s (11/13) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 728B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 35B 0.0s => [internal] load metadata for docker.io/library/ruby:3.0.0-alpine 2.9s => [internal] load build context 0.0s => => transferring context: 156B 0.0s => [1/9] FROM docker.io/library/ruby:3.0.0-alpine@sha256:17fcf2715439387dc050fcd6801a98c6b61c196739e56d4c8a12d93bb0dcecac 0.0s => CACHED [2/9] RUN apk update && apk add --no-cache --update build-base tzdata bash yarn python2 imagemagick graphviz ttf-freefont mysql-dev mysql-clie 0.0s => CACHED [3/9] WORKDIR /workdir 0.0s => CACHED [4/9] COPY Gemfile Gemfile.lock ./ 0.0s => CACHED [5/9] RUN bundle install --no-cache 0.0s => CACHED [6/9] COPY package.json yarn.lock ./ 0.0s => ERROR [7/9] RUN yarn install && yarn cache clean 8.3s ------ > [7/9] RUN yarn install && yarn cache clean: #11 0.314 yarn install v1.22.10 #11 0.366 [1/4] Resolving packages... #11 0.613 [2/4] Fetching packages... #11 7.937 error Could not write file "/workdir/yarn-error.log": "ENOSPC: no space left on device, open '/workdir/yarn-error.log'" #11 7.937 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. #11 7.937 error An unexpected error occurred: "ENOSPC: no space left on device, mkdir '/usr/local/share/.cache/yarn/v6/npm-css-color-names-0.0.4-808adc2e79cf84738069b646cb20ec27beb629e0-integrity/node_modules'". ------ executor failed running [/bin/sh -c yarn install && yarn cache clean]: exit code: 1 ERROR: Service 'web' failed to build : Build failed
試行錯誤
ホストのディスク容量かinode不足だと出るらしいが、両方とも問題なかった。
全消ししたら、動くようになった。
何度も調整してbuildしたから、増え過ぎたのかもね。
イメージ・ボリューム・コンテナ・ネットワーク全消し % docker system prune Are you sure you want to continue? [y/N] y コンテナ作成&起動 % docker-compose up --build