From 7bfdd5f2ecb2b6f57b376f9cb80e7d2815eb78b1 Mon Sep 17 00:00:00 2001 From: Jure Rotar Date: Tue, 20 Oct 2026 11:00:50 +0200 Subject: [PATCH] perf: removed duplicated dockerfile deps to speed up the build --- .dockerignore | 4 ++++ Dockerfile | 40 +++++++++++++--------------------------- 2 files changed, 17 insertions(+), 27 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9a151a7 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +** +!Dockerfile +!scripts/ +!scripts/build-sqlite3-wasm.sh diff --git a/Dockerfile b/Dockerfile index b547c06..ad2c48a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,22 @@ # syntax=docker/dockerfile:1 ARG EMSDK_VERSION=5.0.5 -FROM emscripten/emsdk:${EMSDK_VERSION} - -ARG DEBIAN_FRONTEND=noninteractive +FROM emscripten/emsdk:${EMSDK_VERSION} AS wasm-tools -# runtime / build deps -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - ca-certificates \ - git \ - build-essential \ - autoconf \ - automake \ - libtool \ - m4 \ - python3 \ - nodejs \ - npm \ - zip \ - unzip \ - curl \ - wabt \ - && rm -rf /var/lib/apt/lists/* +# The SDK already supplies the build dependencies. SQLite's release build +# only needs wasm-strip from WABT; install the package in a helper stage. +RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ + --mount=type=cache,target=/var/lib/apt/lists,sharing=locked \ + rm -f /etc/apt/apt.conf.d/docker-clean \ + && apt-get update \ + && apt-get install -y --no-install-recommends wabt -# create useful dirs -RUN mkdir -p /build /out /src/bin /work +FROM emscripten/emsdk:${EMSDK_VERSION} -# copy helper script -COPY scripts/build-sqlite3-wasm.sh /usr/local/bin/build-sqlite3-wasm.sh -RUN chmod +x /usr/local/bin/build-sqlite3-wasm.sh +# Using the same SDK base in both stages preserves binary compatibility. +COPY --from=wasm-tools /usr/bin/wasm-strip /usr/local/bin/wasm-strip +COPY --from=wasm-tools /usr/share/doc/wabt/copyright /usr/share/doc/wabt/copyright -WORKDIR /work +COPY --chmod=755 scripts/build-sqlite3-wasm.sh /usr/local/bin/build-sqlite3-wasm.sh ENTRYPOINT ["/usr/local/bin/build-sqlite3-wasm.sh"] CMD ["build"]