mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-02-14 12:52:56 +00:00
feat: update to node 22
This commit is contained in:
@@ -8,6 +8,7 @@ LABEL version="2.0.0" \
|
||||
### Configure versions to install
|
||||
ENV ANDROID_APIS="android-34" \
|
||||
ANDROID_BUILD_TOOLS_VERSION="34.0.0" \
|
||||
NODE_VERSION="22.x" \
|
||||
NPM_VERSION="^10.0.0" \
|
||||
IONIC_VERSION="^6.0.0" \
|
||||
CORDOVA_RES_VERSION="latest" \
|
||||
@@ -19,7 +20,6 @@ ENV ANDROID_APIS="android-34" \
|
||||
ANDROID_SDK_ROOT="/opt/android-sdk" \
|
||||
### Installation files
|
||||
SCRIPTS_DIRECTORY="scripts" \
|
||||
NODE_SETUP_SCRIPT="node_setup.sh" \
|
||||
TMP_PROJECT_NAME="tmp-project"
|
||||
|
||||
### Set $PATH
|
||||
@@ -96,9 +96,9 @@ RUN curl $ANDROID_SDK_TOOLS_DOWNLOAD_URL > /tmp/android-sdk.zip && \
|
||||
sdkmanager "platforms;$ANDROID_APIS" "build-tools;$ANDROID_BUILD_TOOLS_VERSION"
|
||||
|
||||
### Copy scripts directory into the tmp folder, so it's available to the following commands
|
||||
COPY $SCRIPTS_DIRECTORY/$NODE_SETUP_SCRIPT /tmp/
|
||||
|
||||
RUN bash /tmp/$NODE_SETUP_SCRIPT && apt-get install -y nodejs && \
|
||||
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION} | bash && \
|
||||
apt-get install -y nodejs && \
|
||||
### Install wanted npm version
|
||||
npm install -g --unsafe-perm npm@$NPM_VERSION && \
|
||||
### Install needed global npm packages
|
||||
@@ -114,7 +114,7 @@ RUN cd / && ionic start $TMP_PROJECT_NAME blank --type=angular --capacitor --no-
|
||||
RUN ln -s /usr/lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1
|
||||
|
||||
### PNPM
|
||||
RUN corepack enable && corepack prepare pnpm@latest-8 --activate
|
||||
RUN corepack enable
|
||||
|
||||
### Set working directory
|
||||
WORKDIR /app
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Logger Function
|
||||
log() {
|
||||
local message="$1"
|
||||
local type="$2"
|
||||
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
local color
|
||||
local endcolor="\033[0m"
|
||||
|
||||
case "$type" in
|
||||
"info") color="\033[38;5;79m" ;;
|
||||
"success") color="\033[1;32m" ;;
|
||||
"error") color="\033[1;31m" ;;
|
||||
*) color="\033[1;34m" ;;
|
||||
esac
|
||||
|
||||
echo -e "${color}${timestamp} - ${message}${endcolor}"
|
||||
}
|
||||
|
||||
# Error handler function
|
||||
handle_error() {
|
||||
local exit_code=$1
|
||||
local error_message="$2"
|
||||
log "Error: $error_message (Exit Code: $exit_code)" "error"
|
||||
exit $exit_code
|
||||
}
|
||||
|
||||
# Function to check for command availability
|
||||
command_exists() {
|
||||
command -v "$1" &> /dev/null
|
||||
}
|
||||
|
||||
check_os() {
|
||||
if ! [ -f "/etc/debian_version" ]; then
|
||||
echo "Error: This script is only supported on Debian-based systems."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to Install the script pre-requisites
|
||||
install_pre_reqs() {
|
||||
log "Installing pre-requisites" "info"
|
||||
|
||||
# Run 'apt-get update'
|
||||
if ! apt-get update -y; then
|
||||
handle_error "$?" "Failed to run 'apt-get update'"
|
||||
fi
|
||||
|
||||
# Run 'apt-get install'
|
||||
if ! apt-get install -y apt-transport-https ca-certificates curl gnupg; then
|
||||
handle_error "$?" "Failed to install packages"
|
||||
fi
|
||||
|
||||
if ! mkdir -p /usr/share/keyrings; then
|
||||
handle_error "$?" "Makes sure the path /usr/share/keyrings exist or run ' mkdir -p /usr/share/keyrings' with sudo"
|
||||
fi
|
||||
|
||||
rm -f /usr/share/keyrings/nodesource.gpg || true
|
||||
rm -f /etc/apt/sources.list.d/nodesource.list || true
|
||||
|
||||
# Run 'curl' and 'gpg'
|
||||
if ! curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; then
|
||||
handle_error "$?" "Failed to download and import the NodeSource signing key"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to configure the Repo
|
||||
configure_repo() {
|
||||
local node_version=$1
|
||||
|
||||
arch=$(dpkg --print-architecture)
|
||||
if [ "$arch" != "amd64" ] && [ "$arch" != "arm64" ] && [ "$arch" != "armhf" ]; then
|
||||
handle_error "1" "Unsupported architecture: $arch. Only amd64, arm64, and armhf are supported."
|
||||
fi
|
||||
|
||||
echo "deb [arch=$arch signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$node_version nodistro main" | tee /etc/apt/sources.list.d/nodesource.list > /dev/null
|
||||
|
||||
# N|solid Config
|
||||
echo "Package: nsolid" | tee /etc/apt/preferences.d/nsolid > /dev/null
|
||||
echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nsolid > /dev/null
|
||||
echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nsolid > /dev/null
|
||||
|
||||
# Nodejs Config
|
||||
echo "Package: nodejs" | tee /etc/apt/preferences.d/nodejs > /dev/null
|
||||
echo "Pin: origin deb.nodesource.com" | tee -a /etc/apt/preferences.d/nodejs > /dev/null
|
||||
echo "Pin-Priority: 600" | tee -a /etc/apt/preferences.d/nodejs > /dev/null
|
||||
|
||||
# Run 'apt-get update'
|
||||
if ! apt-get update -y; then
|
||||
handle_error "$?" "Failed to run 'apt-get update'"
|
||||
else
|
||||
log "Repository configured successfully."
|
||||
log "To install Node.js, run: apt-get install nodejs -y" "info"
|
||||
log "You can use N|solid Runtime as a node.js alternative" "info"
|
||||
log "To install N|solid Runtime, run: apt-get install nsolid -y \n" "success"
|
||||
fi
|
||||
}
|
||||
|
||||
# Define Node.js version
|
||||
NODE_VERSION="18.x"
|
||||
|
||||
# Check OS
|
||||
check_os
|
||||
|
||||
# Main execution
|
||||
install_pre_reqs || handle_error $? "Failed installing pre-requisites"
|
||||
configure_repo "$NODE_VERSION" || handle_error $? "Failed configuring repository"
|
||||
@@ -1,5 +1,5 @@
|
||||
### Set base image
|
||||
FROM cypress/base:18.16.1
|
||||
FROM cypress/base:22.0.0
|
||||
|
||||
USER root
|
||||
|
||||
@@ -83,6 +83,9 @@ RUN apt-get update && \
|
||||
# Add a link to the browser that allows Cypress to find it
|
||||
RUN ln -s /usr/bin/microsoft-edge /usr/bin/edge
|
||||
|
||||
### PNPM
|
||||
RUN corepack enable
|
||||
|
||||
# versions of local tools
|
||||
RUN echo " node version: $(node -v) \n" \
|
||||
"npm version: $(npm -v) \n" \
|
||||
|
||||
@@ -2,6 +2,8 @@ FROM node:22-alpine
|
||||
|
||||
RUN apk update && apk add git curl jq && mkdir -p /opt
|
||||
|
||||
RUN corepack enable
|
||||
|
||||
COPY --chown=root:root wait-for.sh /opt/wait-for
|
||||
|
||||
RUN chmod +x /opt/wait-for && ln -s /opt/wait-for /usr/local/bin/wait-for
|
||||
|
||||
@@ -2,6 +2,6 @@ FROM node:22-alpine
|
||||
|
||||
RUN apk update && apk add git jq curl python3 build-base
|
||||
|
||||
RUN npm install turbo pnpm --global
|
||||
RUN corepack enable
|
||||
|
||||
CMD []
|
||||
|
||||
Reference in New Issue
Block a user