Skip to content

Commit 60816ab

Browse files
Support builds for different architectures including arm64 (#11673)
* NodeJS: Correct Debian bullseye reference * support multiarch builds via index digest --------- Co-authored-by: Cody Maffucci <46459665+Maffooch@users.noreply.github.com>
1 parent e426aed commit 60816ab

File tree

5 files changed

+11
-93
lines changed

5 files changed

+11
-93
lines changed

Dockerfile.django-alpine

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Dockerfile.nginx to use the caching mechanism of Docker.
66

77
# Ref: https://devguide.python.org/#branchstatus
8-
FROM python:3.11.9-alpine3.20@sha256:df44c0c0761ddbd6388f4549cab42d24d64d257c2a960ad5b276bb7dab9639c7 AS base
8+
FROM python:3.11.9-alpine3.20@sha256:f9ce6fe33d9a5499e35c976df16d24ae80f6ef0a28be5433140236c2ca482686 AS base
99
FROM base AS build
1010
WORKDIR /app
1111
RUN \

Dockerfile.django-debian

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Dockerfile.nginx to use the caching mechanism of Docker.
66

77
# Ref: https://devguide.python.org/#branchstatus
8-
FROM python:3.11.9-slim-bookworm@sha256:8c1036ec919826052306dfb5286e4753ffd9d5f6c24fbc352a5399c3b405b57e AS base
8+
FROM python:3.11.9-slim-bookworm@sha256:6ed5bff4d7d377e2a27d9285553b8c21cfccc4f00881de1b24c9bc8d90016e82 AS base
99
FROM base AS build
1010
WORKDIR /app
1111
RUN \

Dockerfile.integration-tests-debian

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# code: language=Dockerfile
33

44
FROM openapitools/openapi-generator-cli:v7.11.0@sha256:a9e7091ac8808c6835cf8ec88252bca603f1f889ef1456b63d8add5781feeca7 AS openapitools
5+
# currently only supports x64, no arm yet due to chrome and selenium dependencies
56
FROM python:3.11.9-slim-bookworm@sha256:8c1036ec919826052306dfb5286e4753ffd9d5f6c24fbc352a5399c3b405b57e AS build
67
WORKDIR /app
78
RUN \

Dockerfile.nginx-alpine

Lines changed: 7 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
# Dockerfile.django-alpine to use the caching mechanism of Docker.
66

77
# Ref: https://devguide.python.org/#branchstatus
8-
FROM python:3.11.9-alpine3.20@sha256:df44c0c0761ddbd6388f4549cab42d24d64d257c2a960ad5b276bb7dab9639c7 AS base
8+
FROM node:20.18.2-alpine3.20@sha256:40cbd847a2db119ba716f2861b04076bcb575a0051923459271a18ff80944f7f AS node
9+
10+
FROM python:3.11.9-alpine3.20@sha256:f9ce6fe33d9a5499e35c976df16d24ae80f6ef0a28be5433140236c2ca482686 AS base
11+
912
FROM base AS build
1013
WORKDIR /app
1114
RUN \
@@ -31,97 +34,11 @@ COPY requirements.txt ./
3134
# https://github.com/unbit/uwsgi/issues/1318#issuecomment-542238096
3235
RUN CPUCOUNT=1 pip3 wheel --wheel-dir=/tmp/wheels -r ./requirements.txt
3336

34-
FROM build AS collectstatic
35-
36-
# Node installation from https://github.com/nodejs/docker-node
37-
ENV NODE_VERSION=20.11.0
38-
39-
RUN addgroup -g 1000 node \
40-
&& adduser -u 1000 -G node -s /bin/sh -D node \
41-
&& apk add --no-cache \
42-
libstdc++ \
43-
&& apk add --no-cache --virtual .build-deps \
44-
curl \
45-
&& ARCH= && alpineArch="$(apk --print-arch)" \
46-
&& case "${alpineArch##*-}" in \
47-
x86_64) \
48-
ARCH='x64' \
49-
CHECKSUM=$(curl -sSL --compressed "https://unofficial-builds.nodejs.org/download/release/v${NODE_VERSION}/SHASUMS256.txt" | grep "node-v${NODE_VERSION}-linux-x64-musl.tar.xz" | cut -d' ' -f1) \
50-
;; \
51-
*) ;; \
52-
esac \
53-
&& if [ -n "${CHECKSUM}" ]; then \
54-
set -eu; \
55-
curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; \
56-
echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - \
57-
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
58-
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs; \
59-
else \
60-
echo "Building from source" \
61-
# backup build
62-
&& apk add --no-cache --virtual .build-deps-full \
63-
binutils-gold \
64-
g++ \
65-
gcc \
66-
gnupg \
67-
libgcc \
68-
linux-headers \
69-
make \
70-
python3 \
71-
# gpg keys listed at https://github.com/nodejs/node#release-keys
72-
&& for key in \
73-
C0D6248439F1D5604AAFFB4021D900FFDB233756 \
74-
DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 \
75-
CC68F5A3106FF448322E48ED27F5E38D5B0A215F \
76-
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
77-
890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 \
78-
C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \
79-
108F52B48DB57BB0CC439B2997B01419BD92F80A \
80-
A363A499291CBBC940DD62E41F10027AF002F8B0 \
81-
; do \
82-
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \
83-
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
84-
done \
85-
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \
86-
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
87-
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
88-
&& grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
89-
&& tar -xf "node-v$NODE_VERSION.tar.xz" \
90-
&& cd "node-v$NODE_VERSION" \
91-
&& ./configure \
92-
&& make -j$(getconf _NPROCESSORS_ONLN) V= \
93-
&& make install \
94-
&& apk del .build-deps-full \
95-
&& cd .. \
96-
&& rm -Rf "node-v$NODE_VERSION" \
97-
&& rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
98-
fi \
99-
&& rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" \
100-
&& apk del .build-deps \
101-
# smoke tests
102-
&& node --version \
103-
&& npm --version
10437

105-
ENV YARN_VERSION=1.22.19
38+
FROM build AS collectstatic
39+
RUN apk add nodejs npm
40+
RUN npm install -g yarn --force
10641

107-
RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \
108-
&& for key in \
109-
6A010C5166006599AA17F08146C2130DFD2497F5 \
110-
; do \
111-
gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || \
112-
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
113-
done \
114-
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
115-
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
116-
&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
117-
&& mkdir -p /opt \
118-
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \
119-
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \
120-
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \
121-
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
122-
&& apk del .build-deps-yarn \
123-
# smoke test
124-
&& yarn --version
12542

12643
# installing DefectDojo packages
12744
RUN pip3 install \

Dockerfile.nginx-debian

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# Dockerfile.django-debian to use the caching mechanism of Docker.
66

77
# Ref: https://devguide.python.org/#branchstatus
8-
FROM python:3.11.9-slim-bookworm@sha256:8c1036ec919826052306dfb5286e4753ffd9d5f6c24fbc352a5399c3b405b57e AS base
8+
FROM python:3.11.9-slim-bookworm@sha256:6ed5bff4d7d377e2a27d9285553b8c21cfccc4f00881de1b24c9bc8d90016e82 AS base
99
FROM base AS build
1010
WORKDIR /app
1111
RUN \

0 commit comments

Comments
 (0)