実現したいこと
https://qiita.com/ukei2021/items/49eb61e4db221346dfe0
Dockerのアウトプットのために上記リンクと同じ内容で構築したいと思ってます。
発生している問題・分からないこと
docker-compose up -d --buildするとfrontendだけ立ち上がらず、後述のエラーになってしまいます。
環境はWSLのUbuntuで行っていますが、別端末では正常に動作しております。
※エラーメッセージはdocker logs frontend-containerの結果になります。
エラーメッセージ
error
1npm error code ENOENT 2npm error syscall open 3npm error path /var/www/html/package.json 4npm error errno -2 5npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open '/var/www/html/package.json' 6npm error enoent This is related to npm not being able to find a file. 7npm error enoent 8npm error A complete log of this run can be found in: /root/.npm/_logs/2025-02-25T09_17_02_785Z-debug-0.log
該当のソースコード
rootdir/docker/dockercomposeyml
1version: '3.9' 2 3services: 4 backend: 5 build: 6 context: ./backend 7 container_name: backend-container 8 volumes: 9 - ../src:/var/www/html 10 ports: 11 - "80:80" 12 depends_on: 13 - db 14 15 frontend: 16 build: 17 context: ./frontend 18 container_name: frontend-container 19 working_dir: /var/www/html 20 ports: 21 - "5173:5173" 22 volumes: 23 - ../src:/var/www/html 24 - /var/www/html/node_modules # node_modules を除外 25 26 db: 27 image: mysql:latest 28 container_name: db-container 29 ports: 30 - "3306:3306" 31 environment: 32 MYSQL_ROOT_PASSWORD: root 33 MYSQL_DATABASE: laravel 34 MYSQL_USER: laravel 35 MYSQL_PASSWORD: laravel 36 volumes: 37 - db_data:/var/lib/mysql 38 - ./mysql/my.cnf:/etc/mysql/my.cnf 39 40volumes: 41 db_data: 42
rootdir/docker/frontend/Dockerfile
1FROM node:22 2 3WORKDIR /var/www/html 4 5RUN apt-get update && apt-get install -y \ 6 git \ 7 && apt-get clean 8 9COPY package*.json . 10 11CMD ["sh", "-c", "npm install && npm run dev"] 12
rootdir/src/package.json
1{ 2 "name": "docker-test", 3 "version": "1.0.0", 4 "scripts": { 5 "start": "node server.js", 6 "dev": "node server.js" 7 } 8} 9
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
1.CMD ["npm", "install"]してみる
⇒エラー変わらず
2.COPYを色々変更して追加してみる
COPY package*.json .
COPY ./package*.json .
COPY ../../package*.json .
⇒エラー変わらず
3.docker-compose.ymlのcontext: ./docker/node -> context: .に変更
⇒backend含め起動しない
4.working_dirを/var/www/html/frontendに変更
⇒エラー変わらず
5.docker-compose down --volumesまたはdocker-compose down --volumes --rmi allして再ビルド
⇒エラー変わらず
補足
WSL(ubuntu24.04 LTS)
Dockerバージョン:28.0.0(Community)
Docker Composeバージョン:v2.33.0

回答1件
あなたの回答
tips
プレビュー