From c3eb1f0024ec95654a1d205d7b93b5591d538f6e Mon Sep 17 00:00:00 2001 From: cmcooper1980 <31871143+cmcooper1980@users.noreply.github.com> Date: Mon, 8 Dec 2025 22:40:03 -0600 Subject: [PATCH] Build frontend during docker build (#894) Co-authored-by: Jamie Scott --- .dockerignore | 4 ++-- compose.yaml | 3 +++ docker/Dockerfile | 19 +++++++++++++++---- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.dockerignore b/.dockerignore index 1adf5fe..1d95d8c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -9,9 +9,9 @@ tmp # Docker extra docker -frontend .editorconfig .eslintrc.cjs .git .gitignore -README.md +.github +*.md diff --git a/compose.yaml b/compose.yaml index b2b7bdb..28b5432 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,6 +1,9 @@ services: dockge: image: louislam/dockge:1 + build: + context: . + dockerfile: docker/Dockerfile restart: unless-stopped ports: # Host Port : Container Port diff --git a/docker/Dockerfile b/docker/Dockerfile index 796fef1..0684b25 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -4,9 +4,19 @@ FROM louislam/dockge:build-healthcheck AS build_healthcheck ############################################ -# Build +# Build frontend ############################################ -FROM louislam/dockge:base AS build +FROM louislam/dockge:base AS build_frontend +WORKDIR /app +COPY --chown=node:node . . +RUN --mount=type=cache,id=npm,target=/npm/store \ + npm install && \ + npm run build:frontend + +############################################ +# Install node modules +############################################ +FROM louislam/dockge:base AS build_nodemodules WORKDIR /app COPY --chown=node:node ./package.json ./package.json COPY --chown=node:node ./package-lock.json ./package-lock.json @@ -18,8 +28,9 @@ RUN npm ci --omit=dev FROM louislam/dockge:base AS release WORKDIR /app COPY --chown=node:node --from=build_healthcheck /app/extra/healthcheck /app/extra/healthcheck -COPY --from=build /app/node_modules /app/node_modules -COPY --chown=node:node . . +COPY --from=build_frontend /app/frontend-dist /app/frontend-dist +COPY --from=build_nodemodules /app/node_modules /app/node_modules +COPY --chown=node:node . . RUN mkdir ./data