Spaces:
Runtime error
Runtime error
File size: 1,569 Bytes
773c828 a26c4e8 773c828 a26c4e8 773c828 a26c4e8 773c828 a26c4e8 773c828 ae46fe5 7b72076 b42f8a9 ae46fe5 b42f8a9 7b72076 dca2fa6 8391eb5 3c9ef9b 328ea0e 78e8583 a9af865 1c87d00 a154475 8391eb5 f802d68 3c9ef9b 7b72076 b42f8a9 1c87d00 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# Step #1: build the React front end
FROM node:14-bullseye-slim as build-step
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
RUN mkdir ./frontend
COPY ./frontend/package.json ./frontend/package-lock.json ./frontend/
WORKDIR /app/frontend
RUN npm install -g [email protected]
# It's OK to have multiple consecutive `RUN` instructions.
# hadolint ignore=DL3059
RUN npm install
WORKDIR /app
COPY ./frontend ./frontend
WORKDIR /app/frontend
RUN npm run build
# Step #2: set up the Python backend and Nginx
FROM python:3.10.13-slim-bullseye
RUN apt-get update && apt-get install -y nginx \
&& rm -rf /var/lib/apt/lists/*
RUN python3 -m pip install --upgrade pip \
&& pip install gunicorn==20.1.0
# Copy backend code and install dependencies
COPY ./backend ./backend
RUN pip install -r ./backend/requirements.txt
# Ensure necessary permissions and create directories
RUN mkdir -p /var/log/nginx && \
touch /var/log/nginx/error.log && \
touch /var/log/nginx/access.log && \
chmod -R 777 /var/log/nginx && \
chown -R root:root /var/log/nginx && \
chmod -R 777 /var/lib/nginx && \
chown -R root:root /var/lib/nginx && \
chmod -R 777 /usr/share/nginx/html && \
chown -R root:root /usr/share/nginx/html
# Step #3: configure nginx and flask
COPY --from=build-step /app/frontend/build /usr/share/nginx/html
COPY deployment/docker/nginx.conf /etc/nginx/nginx.conf
COPY deployment/docker/serve.sh /serve.sh
RUN chmod a+x /serve.sh
# Expose port 8080
EXPOSE 8080
# Run as root user
USER root
ENTRYPOINT ["/bin/bash"]
CMD ["/serve.sh"]
|