Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs Docker Compose用于react,烧瓶使用dokcer Compose up执行容器_Reactjs_Docker_Docker Compose_Dockerfile_Containers - Fatal编程技术网

Reactjs Docker Compose用于react,烧瓶使用dokcer Compose up执行容器

Reactjs Docker Compose用于react,烧瓶使用dokcer Compose up执行容器,reactjs,docker,docker-compose,dockerfile,containers,Reactjs,Docker,Docker Compose,Dockerfile,Containers,我使用docker compose来构建我的烧瓶和react映像,但是当我运行docker compose命令时,我的烧瓶容器启动了,但我的react容器没有激活,为了激活它,我运行了命令run image,我不知道为什么会发生这种情况,我希望您能解释一下原因 我的dokcer-compose.yml version: '3' services: cloud-flask-back: container_name: flask build: ./Flask ports

我使用docker compose来构建我的烧瓶和react映像,但是当我运行docker compose命令时,我的烧瓶容器启动了,但我的react容器没有激活,为了激活它,我运行了命令run image,我不知道为什么会发生这种情况,我希望您能解释一下原因

我的dokcer-compose.yml

version: '3'

services:
  cloud-flask-back:
    container_name: flask
    build: ./Flask
    ports:
        - "5000:5000"
    volumes:
        - ./Flask:/cloud
    environment:
      FLASK_ENV: development
    restart: on-failure
  cloud-react-front:
    container_name: react
    build: ./cloud-front
    ports:
        - "3000:3000"
    volumes:
      - ./cloud-front:/cloud-front-end
    environment:
      NODE_ENV: development
      PORT: 3000
    restart: on-failure

我为react准备的Dockerfile

FROM node:14
# Create app directory
WORKDIR /cloud-front-end
# Install app dependencies
COPY package*.json ./

RUN npm install
# Copy app source code
COPY . .
EXPOSE 3000

CMD ["npm", "start"]

我希望你能帮助我。感谢阅读

我以前在尝试使用“节点”图像运行react app container时看到过这个问题。我相信当我们试着让docker作曲时,conatiner会开始和停止


请尝试在docker-compose.yml中的“cloud react front”服务中添加“stdin\u open:true”。这对我很有效。

云端的附加卷将用主机卷覆盖容器中的所有文件,因此没有可用于容器的节点单元模块

我假设您正在开发中运行此设置。 尝试运行:
docker compose run cloud react front npm install
它将向主机添加节点模块


然后尝试:
docker compose up
,它应该可以工作。

我必须删除开发环境(NODE\u ENV:development)变量吗?我认为您不需要删除环境变量。stdin_open:true将shell锁定为与react应用程序容器的交互模式。如果没有这个,容器会自动停止。您会得到什么错误?
volumes:
指令基本上覆盖了您显示的Dockerfile所做的一切(如果您不在本机Linux主机上,将用错误的体系结构树覆盖映像的
节点模块
目录);删除它有帮助吗?