Skip to content
Merged
20 changes: 14 additions & 6 deletions images/runtime/node/18/bullseye.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen

# Download Node.js via nvm in a disposable stage
FROM ${BASE_IMAGE} AS nodeDownloader
ARG NODE18_VERSION
ENV NVM_DIR /usr/local/nvm
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates \
&& mkdir -p $NVM_DIR \
&& curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE18_VERSION}

#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bullseye:${BUILD_NUMBER}
FROM ${BASE_IMAGE}

Expand All @@ -36,12 +47,9 @@ ENV NODE_VERSION ${NODE18_VERSION}
ENV NPM_CONFIG_LOGLEVEL info
ARG BUILD_DIR=/tmp/oryx/build
ARG IMAGES_DIR=/tmp/oryx/images
COPY nodejs-bullseye-${NODE18_VERSION}.tar.gz .
RUN set -e \
&& mkdir -p /opt/nodejs/${NODE18_VERSION} \
&& tar -xzf nodejs-bullseye-${NODE18_VERSION}.tar.gz -C /usr/local \
&& rm nodejs-bullseye-${NODE18_VERSION}.tar.gz \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs

COPY --from=nodeDownloader /usr/local/nvm/versions/node/v${NODE18_VERSION}/ /usr/local/
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs

ARG NPM_VERSION
ARG PM2_VERSION
Expand Down
19 changes: 13 additions & 6 deletions images/runtime/node/20/bookworm.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen

# Download Node.js via nvm in a disposable stage
FROM ${BASE_IMAGE} AS nodeDownloader
ARG NODE20_VERSION
ENV NVM_DIR /usr/local/nvm
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates \
&& mkdir -p $NVM_DIR \
&& curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE20_VERSION}

#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bookworm:${BUILD_NUMBER}
FROM ${BASE_IMAGE}

Expand All @@ -37,12 +48,8 @@ ENV NPM_CONFIG_LOGLEVEL info
ARG BUILD_DIR=/tmp/oryx/build
ARG IMAGES_DIR=/tmp/oryx/images

COPY nodejs-bookworm-${NODE20_VERSION}.tar.gz .
RUN set -e \
&& mkdir -p /opt/nodejs/${NODE20_VERSION} \
&& tar -xzf nodejs-bookworm-${NODE20_VERSION}.tar.gz -C /usr/local \
&& rm nodejs-bookworm-${NODE20_VERSION}.tar.gz \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
COPY --from=nodeDownloader /usr/local/nvm/versions/node/v${NODE20_VERSION}/ /usr/local/
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs

ARG NPM_VERSION
ARG PM2_VERSION
Expand Down
19 changes: 13 additions & 6 deletions images/runtime/node/20/bullseye.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen

# Download Node.js via nvm in a disposable stage
FROM ${BASE_IMAGE} AS nodeDownloader
ARG NODE20_VERSION
ENV NVM_DIR /usr/local/nvm
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates \
&& mkdir -p $NVM_DIR \
&& curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE20_VERSION}

#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bullseye:${BUILD_NUMBER}
FROM ${BASE_IMAGE}

Expand All @@ -37,12 +48,8 @@ ENV NPM_CONFIG_LOGLEVEL info
ARG BUILD_DIR=/tmp/oryx/build
ARG IMAGES_DIR=/tmp/oryx/images

COPY nodejs-bullseye-${NODE20_VERSION}.tar.gz .
RUN set -e \
&& mkdir -p /opt/nodejs/${NODE20_VERSION} \
&& tar -xzf nodejs-bullseye-${NODE20_VERSION}.tar.gz -C /usr/local \
&& rm nodejs-bullseye-${NODE20_VERSION}.tar.gz \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
COPY --from=nodeDownloader /usr/local/nvm/versions/node/v${NODE20_VERSION}/ /usr/local/
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs

ARG NPM_VERSION
ARG PM2_VERSION
Expand Down
19 changes: 13 additions & 6 deletions images/runtime/node/22/bookworm.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen

# Download Node.js via nvm in a disposable stage
FROM ${BASE_IMAGE} AS nodeDownloader
ARG NODE22_VERSION
ENV NVM_DIR /usr/local/nvm
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates \
&& mkdir -p $NVM_DIR \
&& curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE22_VERSION}

#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bookworm:${BUILD_NUMBER}
FROM ${BASE_IMAGE}

Expand All @@ -37,12 +48,8 @@ ENV NPM_CONFIG_LOGLEVEL info
ARG BUILD_DIR=/tmp/oryx/build
ARG IMAGES_DIR=/tmp/oryx/images

COPY nodejs-bookworm-${NODE22_VERSION}.tar.gz .
RUN set -e \
&& mkdir -p /opt/nodejs/${NODE22_VERSION} \
&& tar -xzf nodejs-bookworm-${NODE22_VERSION}.tar.gz -C /usr/local \
&& rm nodejs-bookworm-${NODE22_VERSION}.tar.gz \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
COPY --from=nodeDownloader /usr/local/nvm/versions/node/v${NODE22_VERSION}/ /usr/local/
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs

ARG NPM_VERSION
ARG PM2_VERSION
Expand Down
19 changes: 13 additions & 6 deletions images/runtime/node/22/bullseye.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,17 @@ ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen

# Download Node.js via nvm in a disposable stage
FROM ${BASE_IMAGE} AS nodeDownloader
ARG NODE22_VERSION
ENV NVM_DIR /usr/local/nvm
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates \
&& mkdir -p $NVM_DIR \
&& curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE22_VERSION}

#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bullseye:${BUILD_NUMBER}
FROM ${BASE_IMAGE}

Expand All @@ -37,12 +48,8 @@ ENV NPM_CONFIG_LOGLEVEL info
ARG BUILD_DIR=/tmp/oryx/build
ARG IMAGES_DIR=/tmp/oryx/images

COPY nodejs-bullseye-${NODE22_VERSION}.tar.gz .
RUN set -e \
&& mkdir -p /opt/nodejs/${NODE22_VERSION} \
&& tar -xzf nodejs-bullseye-${NODE22_VERSION}.tar.gz -C /usr/local \
&& rm nodejs-bullseye-${NODE22_VERSION}.tar.gz \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
COPY --from=nodeDownloader /usr/local/nvm/versions/node/v${NODE22_VERSION}/ /usr/local/
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs

ARG NPM_VERSION
ARG PM2_VERSION
Expand Down
25 changes: 13 additions & 12 deletions images/runtime/node/24/noble.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@ ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
RUN chmod +x build.sh && ./build.sh node /opt/startupcmdgen/startupcmdgen

# Download Node.js via nvm in a disposable stage
FROM ${BASE_IMAGE} AS nodeDownloader
ARG NODE24_VERSION
ENV NVM_DIR /usr/local/nvm
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates \
&& mkdir -p $NVM_DIR \
&& curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE24_VERSION}

#FROM oryxdevmcr.azurecr.io/private/oryx/oryx-node-run-base-bullseye:${BUILD_NUMBER}
FROM ${BASE_IMAGE}

Expand All @@ -38,18 +49,8 @@ ENV NPM_CONFIG_LOGLEVEL=info
ARG BUILD_DIR=/tmp/oryx/build
ARG IMAGES_DIR=/tmp/oryx/images

RUN set -e \
&& apt-get update \
&& apt-get install -y --no-install-recommends git make \
&& curl -sL https://git.io/n-install | bash -s -- -ny - \
&& ~/n/bin/n -d ${NODE24_VERSION} \
&& cp -r /usr/local/n/versions/node/${NODE24_VERSION}/* /usr/local/ \
&& rm -rf /usr/local/n \
&& rm -rf ~/n \
&& apt-get purge -y git make \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
COPY --from=nodeDownloader /usr/local/nvm/versions/node/v${NODE24_VERSION}/ /usr/local/
RUN ln -s /usr/local/bin/node /usr/local/bin/nodejs

ARG NPM_VERSION
ARG PM2_VERSION
Expand Down
28 changes: 19 additions & 9 deletions images/runtime/python/noble.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,27 @@ ENV BUILD_NUMBER=${BUILD_NUMBER}
ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt"
RUN chmod +x build.sh && ./build.sh python /opt/startupcmdgen/startupcmdgen

# Build Python SDK from source in a disposable stage
FROM ${BASE_IMAGE} AS pythonSdkBuilder
ARG OS_FLAVOR
ARG PYTHON_FULL_VERSION
ARG PYTHON_VERSION
ENV PYTHON_VERSION=${PYTHON_FULL_VERSION}
COPY platforms/python/prereqs/build.sh /tmp/build.sh
COPY platforms/python/versions/${OS_FLAVOR}/versionsToBuild.txt /tmp/versionsToBuild.txt
COPY images/receiveGpgKeys.sh /tmp/receiveGpgKeys.sh
RUN chmod +x /tmp/build.sh /tmp/receiveGpgKeys.sh
RUN set -e \
&& mkdir -p /usr/src/python && cd /usr/src/python \
&& VERSION_LINE=$(grep "^${PYTHON_VERSION}," /tmp/versionsToBuild.txt) \
&& export GPG_KEY=$(echo "$VERSION_LINE" | cut -d',' -f2 | tr -d ' ') \
&& export PYTHON_SHA256=$(echo "$VERSION_LINE" | cut -d',' -f3 | tr -d ' ') \
&& export OS_FLAVOR=${OS_FLAVOR} \
&& /tmp/build.sh

FROM ${BASE_IMAGE} as main

ARG IMAGES_DIR=/tmp/oryx/images
ARG BUILD_DIR=/tmp/oryx/build

ARG OS_FLAVOR
ENV OS_FLAVOR=${OS_FLAVOR}
Expand All @@ -34,22 +51,15 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/*

ADD images ${IMAGES_DIR}
ADD build ${BUILD_DIR}
RUN find ${IMAGES_DIR} -type f -iname "*.sh" -exec chmod +x {} \;
RUN find ${BUILD_DIR} -type f -iname "*.sh" -exec chmod +x {} \;

ARG PYTHON_FULL_VERSION
ARG PYTHON_VERSION
ARG PYTHON_MAJOR_VERSION

ENV PYTHON_VERSION ${PYTHON_FULL_VERSION}
COPY platforms/__common.sh /tmp/
COPY platforms/python/prereqs/build.sh /tmp/
COPY platforms/python/versions/${OS_FLAVOR}/versionsToBuild.txt /tmp/
COPY images/receiveGpgKeys.sh /tmp/receiveGpgKeys.sh

RUN chmod +x /tmp/build.sh
RUN ${BUILD_DIR}/buildPythonSdkByVersion.sh $PYTHON_VERSION $OS_FLAVOR
COPY --from=pythonSdkBuilder /opt/python/${PYTHON_FULL_VERSION} /opt/python/${PYTHON_FULL_VERSION}

RUN set -ex \
&& cd /opt/python/ \
Expand Down
40 changes: 19 additions & 21 deletions images/runtime/python/template.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,27 @@ ENV BUILD_NUMBER=${BUILD_NUMBER}
ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt"
RUN chmod +x build.sh && ./build.sh python /opt/startupcmdgen/startupcmdgen

# Build Python SDK from source in a disposable stage
FROM ${BASE_IMAGE} AS pythonSdkBuilder
ARG DEBIAN_FLAVOR
ARG PYTHON_FULL_VERSION
ARG PYTHON_VERSION
ENV PYTHON_VERSION=${PYTHON_FULL_VERSION}
COPY platforms/python/prereqs/build.sh /tmp/build.sh
COPY platforms/python/versions/${DEBIAN_FLAVOR}/versionsToBuild.txt /tmp/versionsToBuild.txt
COPY images/receiveGpgKeys.sh /tmp/receiveGpgKeys.sh
RUN chmod +x /tmp/build.sh /tmp/receiveGpgKeys.sh
RUN set -e \
&& mkdir -p /usr/src/python && cd /usr/src/python \
&& VERSION_LINE=$(grep "^${PYTHON_VERSION}," /tmp/versionsToBuild.txt) \
&& export GPG_KEY=$(echo "$VERSION_LINE" | cut -d',' -f2 | tr -d ' ') \
&& export PYTHON_SHA256=$(echo "$VERSION_LINE" | cut -d',' -f3 | tr -d ' ') \
&& export OS_FLAVOR=${DEBIAN_FLAVOR} \
&& /tmp/build.sh

FROM ${BASE_IMAGE} as main

ARG IMAGES_DIR=/tmp/oryx/images
ARG BUILD_DIR=/tmp/oryx/build
ARG SDK_STORAGE_BASE_URL_VALUE

ARG DEBIAN_FLAVOR
Expand All @@ -35,34 +52,15 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/*

ADD images ${IMAGES_DIR}
ADD build ${BUILD_DIR}
RUN find ${IMAGES_DIR} -type f -iname "*.sh" -exec chmod +x {} \;
RUN find ${BUILD_DIR} -type f -iname "*.sh" -exec chmod +x {} \;

ARG PYTHON_FULL_VERSION
ARG PYTHON_VERSION
ARG PYTHON_MAJOR_VERSION

ENV PYTHON_VERSION ${PYTHON_FULL_VERSION}
RUN true
# COPY build/__pythonVersions.sh ${BUILD_DIR}
# RUN true
COPY platforms/__common.sh /tmp/
RUN true
COPY platforms/python/prereqs/build.sh /tmp/
RUN true
COPY platforms/python/versions/${DEBIAN_FLAVOR}/versionsToBuild.txt /tmp/
RUN true
COPY images/receiveGpgKeys.sh /tmp/receiveGpgKeys.sh
RUN true

RUN chmod +x /tmp/receiveGpgKeys.sh
RUN chmod +x /tmp/build.sh

RUN --mount=type=secret,id=oryx_sdk_storage_account_access_token \
set -e \
&& export ORYX_SDK_STORAGE_ACCOUNT_ACCESS_TOKEN_PATH="/run/secrets/oryx_sdk_storage_account_access_token" \
&& ${BUILD_DIR}/buildPythonSdkByVersion.sh $PYTHON_VERSION $DEBIAN_FLAVOR
COPY --from=pythonSdkBuilder /opt/python/${PYTHON_FULL_VERSION} /opt/python/${PYTHON_FULL_VERSION}

RUN set -ex \
&& cd /opt/python/ \
Expand Down
5 changes: 3 additions & 2 deletions platforms/nodejs/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ ENV VERSIONS_TO_BUILD_OVERRIDE=$VERSIONS_TO_BUILD_OVERRIDE

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
make \
jq \
&& rm -rf /var/lib/apt/lists/*
RUN curl -sL https://git.io/n-install | bash -s -- -ny -
ENV NVM_DIR /usr/local/nvm
RUN mkdir -p $NVM_DIR \
&& curl -sL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

RUN mkdir -p /tmp/scripts
COPY platforms/nodejs/build.sh /tmp/scripts
Expand Down
8 changes: 5 additions & 3 deletions platforms/nodejs/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ tarFileName=nodejs-$osFlavor-$version.tar.gz
upgradeNpm() {
local node_ver="$1"

local nodeDir="/usr/local/n/versions/node/$node_ver"
local nodeDir="$NVM_DIR/versions/node/v$node_ver"
local nodeModulesDir="$nodeDir/lib/node_modules"
local npm_ver=`jq -r .version $nodeModulesDir/npm/package.json`
IFS='.' read -ra versionParts <<< "$npm_ver"
Expand All @@ -32,8 +32,10 @@ upgradeNpm() {
fi
}

~/n/bin/n -d $version
export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
. "$NVM_DIR/nvm.sh"
nvm install $version
upgradeNpm $version
cd /usr/local/n/versions/node/$version
cd $NVM_DIR/versions/node/v$version
mkdir -p /tmp/compressedSdk/nodejs
tar -zcf /tmp/compressedSdk/nodejs/$tarFileName .
Loading