11# ------------------------------------------------------------
2- # STAGE 1: Build Python requirements layer
2+ # STAGE 1: Javascript assets layer
3+ # ------------------------------------------------------------
4+ # This stage is only used in the production build because the final stage only has this stage as a dependency.
5+ 
6+ FROM node:19.8 as js_assets
7+ 
8+ WORKDIR /srv/app
9+ 
10+ COPY package.json package-lock.json ./
11+ COPY src src
12+ 
13+ # Install Node packages
14+ RUN npm ci \
15+     && npm run build \
16+     && ls -la public/static/dist/
17+ 
18+ # ------------------------------------------------------------
19+ # STAGE 2: Build Python requirements layer
320# ------------------------------------------------------------
421FROM python:3-bullseye as python-requirements
522
@@ -24,7 +41,7 @@ RUN set -ex \
2441
2542
2643# ------------------------------------------------------------
27- # STAGE 2 : Dev layer
44+ # STAGE 3 : Dev layer
2845# ------------------------------------------------------------
2946FROM python:3-slim-bullseye as dev
3047
@@ -68,22 +85,6 @@ EXPOSE 8000/tcp 8001/tcp
6885CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
6986
7087
71- # ------------------------------------------------------------
72- # STAGE 3: Javascript assets layer
73- # ------------------------------------------------------------
74- FROM node:19.8 as js_assets
75- 
76- WORKDIR /srv/app
77- 
78- COPY package.json package-lock.json ./
79- COPY src src
80- 
81- # Install Node packages
82- RUN npm ci \
83-     && npm run build \
84-     && ls -la public/static/dist/
85- 
86- 
8788# ------------------------------------------------------------
8889# STAGE 4: Prod
8990# ------------------------------------------------------------
0 commit comments