Reactjs Docker Compose用于react,烧瓶使用dokcer Compose up执行容器
我使用docker compose来构建我的烧瓶和react映像,但是当我运行docker compose命令时,我的烧瓶容器启动了,但我的react容器没有激活,为了激活它,我运行了命令run image,我不知道为什么会发生这种情况,我希望您能解释一下原因 我的dokcer-compose.ymlReactjs 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
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主机上,将用错误的体系结构树覆盖映像的节点模块
目录);删除它有帮助吗?