Я хочу развернуть приложение React / Flask в экземпляре AWS EC2 t2.micro . У меня есть файл docker -compose и соответствующий файл Dockerfile для React, а Flask.
Docker создает и запускает образ для Flask API, но при создании приложения React он cra sh с Javascript кучей вне памяти .
Я пробовал запустить:
RUN node --expose-g c - -max-old-space-size = 1024 node_modules / response-scripts / scripts / build. js
из Dockerfile, но когда я собираю его из docker -compose it never Fini sh the npm запустить сборку и оставить запас.
Я попытался добавить модуль limit-memory-limit тоже, но не закончил sh либо.
Вот мой 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 моего приложения React:
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;"]
И мой Flask Dockerfile :
FROM python:3.6.10
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY requirements.txt /usr/src/app
RUN pip install -r requirements.txt
COPY app.py /usr/src/app
COPY Complements /usr/src/app/Complements
ENTRYPOINT [ "flask" ]
CMD ["run", "--host=0.0.0.0", "--port=5000"]