2023-07-16 15:41:24 -05:00
|
|
|
# syntax=docker/dockerfile:1
|
2024-09-28 11:01:04 -05:00
|
|
|
FROM node:20-alpine AS base
|
|
|
|
|
|
|
|
ENV PNPM_HOME="/pnpm"
|
|
|
|
ENV PATH="$PNPM_HOME:$PATH"
|
2025-02-28 10:02:09 -06:00
|
|
|
RUN npm install -g pnpm@9.14.4
|
2023-12-09 07:21:57 -06:00
|
|
|
|
2023-07-16 15:41:24 -05:00
|
|
|
WORKDIR /app
|
2024-02-06 11:50:16 +00:00
|
|
|
|
|
|
|
COPY ./package*.json .
|
2024-09-28 11:01:04 -05:00
|
|
|
COPY ./pnpm-lock.yaml .
|
|
|
|
|
|
|
|
FROM base AS prod-deps
|
|
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
|
2024-02-06 11:50:16 +00:00
|
|
|
|
2024-09-28 11:01:04 -05:00
|
|
|
FROM base AS build
|
|
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
2023-12-09 07:21:57 -06:00
|
|
|
|
2024-10-12 11:11:01 +01:00
|
|
|
ARG COMMIT_HASH=""
|
|
|
|
ARG APP_VERSION=""
|
|
|
|
ENV VITE_COMMIT_HASH="$COMMIT_HASH"
|
|
|
|
ENV VITE_APP_VERSION="$APP_VERSION"
|
2024-09-28 11:01:04 -05:00
|
|
|
|
|
|
|
COPY tsconfig.json .
|
2024-11-08 09:24:44 +00:00
|
|
|
COPY vite.config.ts .
|
2024-09-30 08:58:07 -05:00
|
|
|
COPY index.html .
|
2024-09-28 11:01:04 -05:00
|
|
|
COPY public ./public
|
|
|
|
COPY src ./src
|
|
|
|
RUN pnpm build
|
2023-07-16 15:41:24 -05:00
|
|
|
|
2024-07-20 07:21:04 -05:00
|
|
|
FROM nginx:stable-alpine-slim AS main
|
2024-04-25 16:59:55 -05:00
|
|
|
|
2024-09-28 11:01:04 -05:00
|
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
|
|
|
|
|
|
EXPOSE 80
|
2023-12-11 20:37:06 -06:00
|
|
|
|
2024-04-25 16:59:55 -05:00
|
|
|
# setup entrypoint
|
2024-09-28 11:01:04 -05:00
|
|
|
ADD ./docker-entrypoint.sh /docker-entrypoint.sh
|
|
|
|
RUN chmod a+x /docker-entrypoint.sh
|
2023-12-11 20:37:06 -06:00
|
|
|
|
2024-09-28 11:01:04 -05:00
|
|
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|