Open shari-sushi opened 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'
}
AWSでデプロイした時にとらぶらなければとりあえずはいいんだけどさ。不安要素でしかない…。
まだフロントしかデプロイしてないけど、このトラブルは発生しなかった。 なお、開発環境とはUIが若干違うものになったので、ローカルでもちゃんとdocker使いたい。
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"]
VSCode上で
npm run dev
npm run build, npm run start
した場合には起動する。しかしdocker-compose buildやdocker-compose upし、docker内で起動した場合にはエラー発生。
なお、(少なくとも
docker-compose up
した場合には)ファイルは存在している。ただし、その画像のとこでクリックしても開けない。
また、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 ```