1+ FROM node:20-bookworm AS dev
2+
3+ RUN apt-get update -y \
4+ && apt-get install -y --no-install-recommends \
5+ git bash g++ make \
6+ && rm -rf /var/lib/apt/lists/*
7+
8+ RUN corepack enable
9+
10+ WORKDIR /code
11+ RUN git config --global --add safe.directory /code
12+
13+
14+ COPY package.json pnpm-lock.yaml /code/
15+ RUN corepack prepare --activate
16+ # RUN npm install -g pnpm
17+
18+ # RUN pnpm install
19+
20+
21+
22+ # -------------------------- Nginx - Builder --------------------------------
23+ FROM dev AS nginx-build
24+
25+ COPY package.json pnpm-lock.yaml /code/
26+
27+ RUN corepack prepare --activate
28+
29+ RUN pnpm install
30+
31+ COPY . .
32+
33+ # # Build variables (Requires backend pulled)
34+ ENV APP_TITLE=APP_TITLE_PLACEHOLDER
35+ ENV APP_GRAPHQL_ENDPOINT=APP_GRAPHQL_ENDPOINT_PLACEHOLDER
36+ ENV APP_GRAPHQL_CODEGEN_ENDPOINT=./backend/schema.graphql
37+
38+ RUN pnpm generate:type && pnpm build
39+ # RUN pnpm build
40+
41+ # ---------------------------------------------------------------------------
42+ FROM nginx:1 AS nginx-serve
43+
44+ LABEL maintainer="Togglecorp Dev"
45+ LABEL org.opencontainers.image.source="https://github.com/ToogleCorp/nrcs-cms"
46+
47+ COPY ./nginx-serve/apply-config.sh /docker-entrypoint.d/
48+ COPY ./nginx-serve/nginx.conf.template /etc/nginx/templates/default.conf.template
49+ COPY --from=nginx-build /code/build /code/build
50+
51+ # NOTE: Used by apply-config.sh
52+ ENV APPLY_CONFIG__SOURCE_DIRECTORY=/code/build/
53+ ENV APPLY_CONFIG__DESTINATION_DIRECTORY=/usr/share/nginx/html/
54+ ENV APPLY_CONFIG__OVERWRITE_DESTINATION=true
0 commit comments