1+ FROM debian:trixie-slim
2+
3+ ENV NPM_CONFIG_LOGLEVEL=info
4+ ENV NODE_VERSION=20.19.4
5+
6+ # gpg keys listed at https://github.com/nodejs/node
7+ RUN set -ex \
8+ && apt-get update \
9+ && apt-get install -y ca-certificates curl gnupg dirmngr xz-utils --no-install-recommends \
10+ && rm -rf /var/lib/apt/lists/* \
11+ # use pre-existing gpg directory, see https://github.com/nodejs/docker-node/pull/1895#issuecomment-1550389150
12+ && export GNUPGHOME="$(mktemp -d)" \
13+ && for key in \
14+ 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 \
15+ DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \
16+ CC68F5A3106FF448322E48ED27F5E38D5B0A215F \
17+ 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
18+ 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \
19+ C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
20+ 108F52B48DB57BB0CC439B2997B01419BD92F80A \
21+ A363A499291CBBC940DD62E41F10027AF002F8B0 \
22+ ; do \
23+ { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key" ; } || \
24+ { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key" ; } ; \
25+ done \
26+ && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
27+ && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
28+ && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
29+ && gpgconf --kill all \
30+ && rm -rf "$GNUPGHOME" \
31+ && grep " node-v$NODE_VERSION-linux-x64.tar.xz\$ " SHASUMS256.txt | sha256sum -c - \
32+ && tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
33+ && rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
34+ && node --version \
35+ && npm --version
36+
37+ CMD [ "node" ]
0 commit comments