From 58fad54c512b03f3dbcc543e51f6ea720562cde1 Mon Sep 17 00:00:00 2001 From: Daniel Gak Anagrov Date: Mon, 23 Jun 2025 09:42:00 +0200 Subject: [PATCH] chore(dockerfile): increase likelihood of docker layer caching (#4972) --- .dockerignore | 3 +++ packages/frontend-2/Dockerfile | 49 ++++++++++++++++++---------------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/.dockerignore b/.dockerignore index a8cbff57d..bf2edada2 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,5 @@ .circleci +.github .git **/node_modules **/dist @@ -14,6 +15,8 @@ readme.md **/Dockerfile **/.venv +**/**.spec.ts + .pnp.* .yarn/* !.yarn/patches diff --git a/packages/frontend-2/Dockerfile b/packages/frontend-2/Dockerfile index 777d53258..937627897 100644 --- a/packages/frontend-2/Dockerfile +++ b/packages/frontend-2/Dockerfile @@ -1,8 +1,23 @@ ARG NODE_ENV=production + FROM node:22-bookworm-slim@sha256:221ee67425de7a3c11ce4e81e63e50caaec82ede3a7d34599ab20e59d29a0cb5 AS build-stage WORKDIR /speckle-server +# install tini +ARG TINI_VERSION=v0.19.0 +RUN apt-get update -y \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + --no-install-recommends \ + ca-certificates=20230311 \ + curl=7.88.1-10+deb12u12 \ + && curl -fsSL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini -o /usr/bin/tini \ + && chmod +x /usr/bin/tini \ + && apt-get remove -y curl \ + && apt-get autoremove -y \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + COPY .yarnrc.yml . COPY .yarn ./.yarn COPY package.json yarn.lock ./ @@ -15,29 +30,7 @@ COPY packages/ui-components/package.json ./packages/ui-components/ COPY packages/ui-components-nuxt/package.json ./packages/ui-components-nuxt/ COPY packages/tailwind-theme/package.json ./packages/tailwind-theme/ COPY packages/frontend-2/package.json ./packages/frontend-2/ -COPY packages/frontend-2/type-augmentations ./packages/frontend-2/ - -COPY packages/objectloader2 ./packages/objectloader2/ -COPY packages/viewer ./packages/viewer/ -COPY packages/shared ./packages/shared/ -COPY packages/ui-components ./packages/ui-components/ -COPY packages/ui-components-nuxt ./packages/ui-components-nuxt/ -COPY packages/tailwind-theme ./packages/tailwind-theme/ -COPY packages/frontend-2 ./packages/frontend-2/ - -# install tini -ARG TINI_VERSION=v0.19.0 -RUN apt-get update -y \ - && DEBIAN_FRONTEND=noninteractive apt-get install -y \ - --no-install-recommends \ - ca-certificates=20230311 \ - curl=7.88.1-10+deb12u12 \ - && curl -fsSL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini -o /usr/bin/tini \ - && chmod +x /usr/bin/tini \ - && apt-get remove -y curl \ - && apt-get autoremove -y \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* +COPY packages/frontend-2/type-augmentations ./packages/frontend-2/type-augmentations # consume the ARG from the global scope ARG NODE_ENV @@ -46,9 +39,19 @@ ENV NODE_ENV=${NODE_ENV} # hadolint ignore=DL3059 RUN PUPPETEER_SKIP_DOWNLOAD=true PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 yarn workspaces focus -A +COPY packages/objectloader2 ./packages/objectloader2/ +COPY packages/viewer ./packages/viewer/ +COPY packages/shared ./packages/shared/ +COPY packages/ui-components ./packages/ui-components/ +COPY packages/ui-components-nuxt ./packages/ui-components-nuxt/ +COPY packages/tailwind-theme ./packages/tailwind-theme/ + # hadolint ignore=DL3059 RUN yarn workspaces foreach --exclude "@speckle/frontend-2" -W run build +COPY packages/frontend-2/type-augmentations ./packages/frontend-2 +COPY packages/frontend-2 ./packages/frontend-2/ + ARG BUILD_SOURCEMAPS=false ENV BUILD_SOURCEMAPS=${BUILD_SOURCEMAPS} # for better sourcemaps (the app still gets minified at the end)