-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathDockerfile
More file actions
41 lines (28 loc) · 1.21 KB
/
Dockerfile
File metadata and controls
41 lines (28 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
ARG BALENA_ARCH=%%BALENA_ARCH%%
ARG BALENALIB_ARCH=%%BALENA_ARCH%%
ARG DISTRO=debian
FROM balenalib/${BALENALIB_ARCH}-debian:buster-build AS debian
ARG BALENA_ARCH=%%BALENA_ARCH%%
ENV BUILD_FLAGS='--prefix=/'
ENV DEST_DIR=node-v${NODE_VERSION}-linux-${BALENA_ARCH}
ENV TAR_FILE=node-v${NODE_VERSION}-linux-${BALENA_ARCH}.tar.gz
FROM balenalib/${BALENALIB_ARCH}-alpine:3.18-build AS alpine
ARG BALENA_ARCH=%%BALENA_ARCH%%
ENV BUILD_FLAGS='--prefix=/ --shared-zlib'
ENV DEST_DIR=node-v${NODE_VERSION}-linux-${BALENA_ARCH}-alpine
ENV TAR_FILE=node-v${NODE_VERSION}-linux-${BALENA_ARCH}-alpine.tar.gz
# hadolint ignore=DL3006
FROM ${DISTRO} AS build
WORKDIR /src
RUN git clone https://github.com/nodejs/node.git .
ARG NODE_VERSION
COPY commit-table ./commit-table
RUN commit="$(awk -v version="v${NODE_VERSION}" '$2 == version {print $1}' commit-table)" && \
if [ -z "${commit}" ]; then echo "commit for v$NODE_VERSION not found!" ; exit 1 ; fi && \
git -c advice.detachedHead=false checkout "${commit}"
# hadolint ignore=SC2086
RUN ./configure $BUILD_FLAGS \
&& make install -j"$(nproc)" DESTDIR="${DEST_DIR}" V=1 PORTABLE=1
RUN tar -cvzf "${TAR_FILE}" "${DEST_DIR}"
FROM scratch AS output
COPY --from=build /src/node-*.tar.gz /