【问题标题】:Why my docker-compose.yml file not finding the package.json file?为什么我的 docker-compose.yml 文件找不到 package.json 文件?
【发布时间】:2023-01-13 03:14:16
【问题描述】:

我正在尝试对我的 react/typescript 应用程序进行 docker 化,但是当我尝试 docker-compose run frontend 时,它找不到 package.json 文件。我没有 DockerFile,只有 docker-compose.yml

docker-compose.yml:

`version: '3.5'

services:
  frontend:
    image: node:latest
    volumes:
      - ./frontend:/app
    ports:
      - 3000:3000
    working_dir: /app
    command: bash -c "npm i && npm start"`

我的根文件夹名为 FULL-STACK-CHALLENGE,我的文件夹结构如下:

Project structure(https://i.stack.imgur.com/RkCbY.png)

当我尝试运行 docker-compose.yml 文件时出现此错误:

Creating full-stack-challenge_frontend_run ... done
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /app/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2023-01-12T17_30_41_901Z-debug-0.log
ERROR: 254

我还想在 localhost:3000 打开这个应用程序

我犯的错误在哪里?

我已经尝试更改 working_dir 的名称或卷的名称,甚至尝试创建一个 DockerFile,但没有任何效果

【问题讨论】:

  • 因为您的 package.json 文件位于 exchange-currencies 目录中。将您的 working_dir 更改为 /app/exchange-currencies 或将 package.json 文件上移一个目录级别。

标签: reactjs typescript docker docker-compose package.json


【解决方案1】:

错误消息是说在容器内的 /app 目录中找不到 package.json 文件。这可能是因为 docker-compose.yml 文件中的卷配置没有正确地将本地前端目录映射到容器内的 /app 目录。

看起来您的根文件夹名为 FULL-STACK-CHALLENGE,前端文件夹位于此目录中。因此,您应该将卷配置更改为:

卷:

  • ./全栈挑战/前端:/app

此外,要在 localhost:3000 打开应用程序,还应确保 React 应用程序配置为在端口 3000 上运行。这可以通过在前端目录中添加一个包含以下内容的 .env 文件来完成:

端口=3000

并在您的 package.json 文件中的“脚本”部分添加以下内容

“开始”:“反应脚本开始”

现在应该可以正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多