|
1 | | -FROM cubetiq/calpine-os-linux:latest |
| 1 | +FROM node:18-alpine |
2 | 2 | LABEL maintainer="sombochea@cubetiqs.com" |
3 | 3 |
|
4 | | -# Build with root access |
5 | | -USER root |
6 | | - |
7 | | -ENV NODE_VERSION 18.17.1 |
8 | | -ENV NODE_SHA256 a67f0b51f0951382709abb5613ee577b5af648752ed363ae32411214041f4e73 |
9 | | -ENV USER_UID 1001 |
10 | | - |
11 | | -RUN addgroup -g ${USER_UID} node \ |
12 | | - && adduser -u ${USER_UID} -G node -s /bin/sh -D node \ |
13 | | - && apk add --no-cache \ |
14 | | - libstdc++ \ |
15 | | - && apk add --no-cache --virtual .build-deps \ |
16 | | - curl \ |
17 | | - && ARCH= && alpineArch="$(apk --print-arch)" \ |
18 | | - && case "${alpineArch##*-}" in \ |
19 | | - x86_64) \ |
20 | | - ARCH='x64' \ |
21 | | - CHECKSUM=$NODE_SHA256 \ |
22 | | - ;; \ |
23 | | - *) ;; \ |
24 | | - esac \ |
25 | | - && if [ -n "${CHECKSUM}" ]; then \ |
26 | | - set -eu; \ |
27 | | - DL_ROOT="https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \ |
28 | | - echo "Downloading Node.js from ${DL_ROOT}"; \ |
29 | | - curl -fsSLO --compressed $DL_ROOT; \ |
30 | | - echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \ |
31 | | - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ |
32 | | - && ln -s /usr/local/bin/node /usr/local/bin/nodejs; \ |
33 | | - else \ |
34 | | - echo "Building from source" \ |
35 | | - # backup build |
36 | | - && apk add --no-cache --virtual .build-deps-full \ |
37 | | - binutils-gold \ |
38 | | - g++ \ |
39 | | - gcc \ |
40 | | - gnupg \ |
41 | | - libgcc \ |
42 | | - linux-headers \ |
43 | | - make \ |
44 | | - python3 \ |
45 | | - # gpg keys listed at https://github.com/nodejs/node#release-keys |
46 | | - && for key in \ |
47 | | - 4ED778F539E3634C779C87C6D7062848A1AB005C \ |
48 | | - 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ |
49 | | - 74F12602B6F1C4E913FAA37AD3A89613643B6201 \ |
50 | | - 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ |
51 | | - 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ |
52 | | - C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ |
53 | | - C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ |
54 | | - DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ |
55 | | - A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ |
56 | | - 108F52B48DB57BB0CC439B2997B01419BD92F80A \ |
57 | | - B9E2F5981AA6E0CD28160D9FF13993A75599653C \ |
58 | | - ; do \ |
59 | | - gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ |
60 | | - gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ |
61 | | - gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ |
62 | | - done \ |
63 | | - && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \ |
64 | | - && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ |
65 | | - && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ |
66 | | - && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ |
67 | | - && tar -xf "node-v$NODE_VERSION.tar.xz" \ |
68 | | - && cd "node-v$NODE_VERSION" \ |
69 | | - && ./configure \ |
70 | | - && make -j$(getconf _NPROCESSORS_ONLN) V= \ |
71 | | - && make install \ |
72 | | - && apk del .build-deps-full \ |
73 | | - && cd .. \ |
74 | | - && rm -Rf "node-v$NODE_VERSION" \ |
75 | | - && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \ |
76 | | - fi \ |
77 | | - && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \ |
78 | | - && apk del .build-deps |
79 | | - |
80 | 4 | # Update NPM package |
81 | 5 | RUN npm install -g npm@latest |
82 | 6 |
|
|
0 commit comments