Feat(Docker): Containerized the application
This commit is contained in:
36
Dockerfile
Normal file
36
Dockerfile
Normal file
@@ -0,0 +1,36 @@
|
||||
FROM node:18-bullseye-slim as frontend
|
||||
|
||||
WORKDIR /frontend/
|
||||
COPY frontend/package.json frontend/package-lock.json /frontend/
|
||||
RUN npm install
|
||||
|
||||
COPY frontend /frontend/
|
||||
RUN npm run build
|
||||
|
||||
FROM python:3.10.1-slim-bullseye
|
||||
RUN apt-get update && apt install dumb-init
|
||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||
|
||||
EXPOSE 8080
|
||||
RUN mkdir -p /app
|
||||
WORKDIR /app
|
||||
|
||||
COPY hypercorn.toml /app/
|
||||
CMD ["pdm", "run", "hypercorn", "--config", "hypercorn.toml", "backend.run:app"]
|
||||
|
||||
RUN python -m venv /ve
|
||||
ENV PATH=/ve/bin:${PATH}
|
||||
RUN pip install --no-cache-dir pdm
|
||||
|
||||
COPY backend/pdm.lock backend/pyproject.toml /app/
|
||||
RUN pdm install --prod --no-lock --no-editable
|
||||
|
||||
COPY --from=frontend /frontend/build/*.js* /app/backend/static/
|
||||
COPY --from=frontend /frontend/build/*.png /frontend/build/*.svg /app/backend/static/
|
||||
COPY --from=frontend /frontend/build/index.html \
|
||||
/app/backend/templates/
|
||||
COPY --from=frontend /frontend/build/static/. /app/backend/static/
|
||||
|
||||
COPY backend/src/ /app/
|
||||
|
||||
USER nobody
|
Reference in New Issue
Block a user