Reactjs 应用程序与docker compose交互

Reactjs 应用程序与docker compose交互,reactjs,docker-compose,Reactjs,Docker Compose,我正在使用docker compose放置一个react应用程序。 Dockerfile文件和docker-compose.yml已创建,但生成应用程序时出错 Dockerfile FROM node:8 WORKDIR /usr/src/app RUN npm ci EXPOSE 3000 # start app CMD ["npm", "start"] docker-compose.yml version: "3.3" servi

我正在使用docker compose放置一个react应用程序。 Dockerfile文件和docker-compose.yml已创建,但生成应用程序时出错

Dockerfile

FROM node:8
WORKDIR /usr/src/app
RUN npm ci
EXPOSE 3000
# start app
CMD ["npm", "start"]
docker-compose.yml

version: "3.3"
services:
  app:
    container_name: react_app
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./app:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - '3000:3000'
    stdin_open: true
    environment:
      - NODE_ENV=development
文件夹体系结构是:

docker-compose.yml 码头工人 app/package.json app/src/

执行docker compose up-d--build命令时,会出现以下错误

建筑应用程序步骤1/5:从节点:8--->8eeadf3757f4步骤2/5: WORKDIR/usr/src/app->在1420513ebefb中运行 中间容器1420513ebefb->f46f192dd592步骤3/5:运行 npm ci-->在edb7041c8ba5 npm ERR中运行!代码enoint npm ERR! 系统调用打开npm错误!path/usr/src/app/package.json npm ERR!errno-2 npm错误!eNote eNote:没有这样的文件或目录,请打开 “/usr/src/spa/package.json”npm ERR!eNONT这与npm无关 能够找到一个文件。npm错误!埃诺特

npm错误!此运行的完整日志可在以下位置找到:npm ERR
/root/.npm/_logs/2020-10-25T19_38_16_569Z-debug.log错误:服务 “app”生成失败:命令“/bin/sh-c npm ci”返回了一个 非零代码:254


您必须将项目文件复制到docker容器的内部。 下面的代码将有助于解决您的问题

FROM node:8
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
# start app
CMD ["npm", "start"]

Halil错误是第4/7步:运行npm ci-->00e1df66522d npm ERR中运行!cipm只能安装包含现有包lock.json或包含lockfileVersion>=1的npm-shrinkwrap.json的包。使用运行安装npm@5或稍后生成,然后重试。npm错误!此运行的完整日志可在以下位置找到:npm ERR/root/.npm/_logs/2020-10-25T20_45_01_752Z-debug.logI将使用插入和新错误更改post。如果没有package-lock.json,则应使用
npm install
而不是
npm ci
。更改为
npm安装