Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
**
!Dockerfile
!scripts/
!scripts/build-sqlite3-wasm.sh
40 changes: 13 additions & 27 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
Loading