我想将 React/Flask 应用程序部署到AWS EC2 t2.micro实例中。我得到了一个 docker-compose 文件以及 React 和 Flask 各自的 Dockerfile。
Docker 为 Flask API 创建并运行映像,但是,当构建 React 应用程序时,它会因Javascript heap out of memory而崩溃。
我尝试运行:
运行节点 --expose-gc --max-old-space-size=1024 node_modules/react-scripts/scripts/build.js
来自 Dockerfile,但是当我从 docker-compose 构建它时,它永远不会完成npm run 构建并保持库存。
我也尝试添加模块增加内存限制,但也没有完成。
这是我的 docker-compose.yml:
version: '3.5'
services:
frontend:
container_name: frontend
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- 80:80
- 443:443
env_file:
- ./frontend/.env
environment:
- REACT_APP_FLASK_API= "api address"
api:
restart: always
container_name: api
build:
context: ./api
dockerfile: Dockerfile
expose:
- 5000
environment:
- FLASK_ENV=development
- FLASK_APP=app.py
- FLASK_DEBUG=1
我的反应应用程序 Dockerfile:
FROM node:latest as build
RUN mkdir -p /usr/src/app
# copy the react app to the container
WORKDIR /usr/src/app
COPY . /usr/src/app
COPY package.json /usr/src/app
# adding env variable
ARG REACT_APP_FLASK_API
ENV REACT_APP_FLASK_API "api address"
# prepare the container for building react
RUN npm install
RUN npm run build #node --expose-gc --max-old-space-size=1024 node_modules/react-scripts/scripts/build.js
# preprare nginx
FROM nginx:alpine
COPY --from=build /usr/src/app/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
# fire up nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
元芳怎么了
千巷猫影
相关分类