shari-sushi / V-Kara-Lists

Vカラ(Vtuber歌枠把握アプリ)
MIT License
16 stars 4 forks source link

改)dockerでのみエラー:[Error: ENOENT: no such file or directory, open '/app/src/.next/BUILD_ID'] #112

Open shari-sushi opened 9 months ago

shari-sushi commented 9 months ago

VSCode上で npm run dev npm run build, npm run start した場合には起動する。

しかしdocker-compose buildやdocker-compose upし、docker内で起動した場合にはエラー発生。

[Error: ENOENT: no such file or directory, open '/app/src/.next/BUILD_ID'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/app/src/.next/BUILD_ID'
}

なお、(少なくともdocker-compose upした場合には)ファイルは存在している。

ただし、その画像のとこでクリックしても開けない。

Error: Cannot open editor for file /app/src/.next/BUILD_ID.

また、VSCode上でbuildした.nextをコピーさせた場合には別のエラーが発生する。

別のエラー

``` Error: Cannot find module 'next/dist\client\components\request-async-storage.external.js' v_kara_app | Require stack: v_kara_app | - /app/src/.next/server/pages/index.js v_kara_app | - /app/src/node_modules/next/dist/server/require.js v_kara_app | - /app/src/node_modules/next/dist/server/next-server.js v_kara_app | - /app/src/node_modules/next/dist/server/next.js v_kara_app | - /app/src/node_modules/next/dist/server/lib/start-server.js v_kara_app | - /app/src/node_modules/next/dist/cli/next-start.js v_kara_app | - /app/src/node_modules/next/dist/lib/commands.js v_kara_app | - /app/src/node_modules/next/dist/bin/next v_kara_app | at Module._resolveFilename (node:internal/modules/cjs/loader:1134:15) v_kara_app | at /app/src/node_modules/next/dist/server/require-hook.js:54:36 v_kara_app | at Module._load (node:internal/modules/cjs/loader:975:27) v_kara_app | at Module.require (node:internal/modules/cjs/loader:1225:19) v_kara_app | at mod.require (/app/src/node_modules/next/dist/server/require-hook.js:64:28) v_kara_app | at require (node:internal/modules/helpers:177:18) v_kara_app | at 1877 (/app/src/.next/server/pages/index.js:8:1317) v_kara_app | at __webpack_require__ (/app/src/.next/server/webpack-runtime.js:1:145) v_kara_app | at 7866 (/app/src/.next/server/chunks/343.js:1:8115) v_kara_app | at __webpack_require__ (/app/src/.next/server/webpack-runtime.js:1:145) { v_kara_app | code: 'MODULE_NOT_FOUND', v_kara_app | requireStack: [ v_kara_app | '/app/src/.next/server/pages/index.js', v_kara_app | '/app/src/node_modules/next/dist/server/require.js', v_kara_app | '/app/src/node_modules/next/dist/server/next-server.js', v_kara_app | '/app/src/node_modules/next/dist/server/next.js', v_kara_app | '/app/src/node_modules/next/dist/server/lib/start-server.js', v_kara_app | '/app/src/node_modules/next/dist/cli/next-start.js', v_kara_app | '/app/src/node_modules/next/dist/lib/commands.js', v_kara_app | '/app/src/node_modules/next/dist/bin/next' v_kara_app | ] v_kara_app | } ```


以下、docker周りのファイル

/Dockerfile ``` version: '3.8' services: db: image: mysql platform: linux/amd64 #mac環境で必須なことがあるらしい env_file: .env container_name: v_kara_db build: context: ./db healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] timeout: 5s retries: 10 ports: - "3306:3306" command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci api: build: context: ./t0016Go container_name: v_kara_api env_file: .env stdin_open: true tty: true volumes: - ./t0016Go:/api/src depends_on: db: condition: service_healthy ports: - "8080:8080" app: build: context: ./t0016Next container_name: v_kara_app stdin_open: true tty: true volumes: - ./t0016Next/myapp:/app/src # depends_on: # - "api" ports: - "80:80" ``` t0016Next\Dockerfile ``` FROM node:18 WORKDIR /app/src COPY /myapp/package*.json . RUN npm install COPY ./myapp . RUN npm run build CMD ["npm", "run", "start"] ``` t0016Next.dockerignore ``` .next node_module ```

shari-sushi commented 9 months ago

追加事項

VSCode上で.nextを一旦消した後、npm run buildせずにnpm run startすると同様のエラーが発生する。

\myapp> npm run start

> 0016api@0.1.0 start
> next start -p 80

[Error: ENOENT: no such file or directory, open 'C:\Users\kawai tatuya\SESESE\0016go_next_relation\t0016Next\myapp\.next\BUILD_ID'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:\\Users\\kawai tatuya\\SESESE\\0016go_next_relation\\t0016Next\\myapp\\.next\\BUILD_ID'
}
shari-sushi commented 9 months ago

AWSでデプロイした時にとらぶらなければとりあえずはいいんだけどさ。不安要素でしかない…。

shari-sushi commented 9 months ago

まだフロントしかデプロイしてないけど、このトラブルは発生しなかった。 なお、開発環境とはUIが若干違うものになったので、ローカルでもちゃんとdocker使いたい。

shari-sushi commented 6 days ago

npm install した後に‘COPY ./myapp .`で上書きして消してるから?

FROM node:18-alpine

WORKDIR /app/src 

COPY /myapp/package*.json .

RUN npm install

COPY ./myapp .

# RUN npm run build

EXPOSE 80

# ↓ならRUN npm run build必要(だけどちゃんと機能してない。pathが悪いかも?)
# CMD ["npm", "run", "start"]

# ↓ならRUN npm run build不要(だけど遅いDoockerだと顕著だし、本番環境と遠い)
CMD ["npm", "run", "dev"]