diff --git a/al2/aarch64/standard/2.0/Dockerfile b/al2/aarch64/standard/2.0/Dockerfile index 24460ba..0dd6e60 100644 --- a/al2/aarch64/standard/2.0/Dockerfile +++ b/al2/aarch64/standard/2.0/Dockerfile @@ -11,8 +11,6 @@ FROM public.ecr.aws/amazonlinux/amazonlinux:2 AS core -ENV EPEL_REPO="https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm" - # Install git, SSH, and other utilities RUN set -ex \ && yum install -yq openssh-clients \ @@ -21,7 +19,7 @@ RUN set -ex \ && ssh-keyscan -t rsa,dsa -H github.com >> ~/.ssh/known_hosts \ && ssh-keyscan -t rsa,dsa -H bitbucket.org >> ~/.ssh/known_hosts \ && chmod 600 ~/.ssh/known_hosts \ - && yum install -yq $EPEL_REPO \ + && amazon-linux-extras install epel -y \ && rpm --import https://download.mono-project.com/repo/xamarin.gpg \ && curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo \ && amazon-linux-extras enable corretto8 \ @@ -36,7 +34,7 @@ RUN set -ex \ libtidy-devel libunwind libwebp-devel libxml2-devel libxslt libxslt-devel \ libyaml-devel libzip-devel mariadb-devel mlocate \ ncurses-devel oniguruma-devel openssl openssl-devel perl-DBD-SQLite \ - perl-DBI perl-HTTP-Date perl-IO-Pty-Easy perl-TimeDate perl-YAML-LibYAML \ + perl-DBI perl-HTTP-Date perl-IO-Pty-Easy perl-TimeDate perl-YAML-LibYAML perl perl-FindBin \ postgresql-devel procps-ng python-configobj readline-devel rsync sgml-common \ subversion-perl tar tcl tk vim wget which xfsprogs xmlto xorg-x11-server-Xvfb xz-devel \ amazon-ecr-credential-helper runc @@ -120,6 +118,12 @@ ENV PATH="/root/.pyenv/shims:/root/.pyenv/bin:$PATH" RUN curl -L https://raw.githubusercontent.com/phpenv/phpenv-installer/master/bin/phpenv-installer | bash ENV PATH="/root/.phpenv/shims:/root/.phpenv/bin:$PATH" +##go +RUN git clone https://github.com/syndbg/goenv.git $HOME/.goenv +ENV PATH="/root/.goenv/shims:/root/.goenv/bin:/go/bin:$PATH" +ENV GOENV_DISABLE_GOPATH=1 +ENV GOPATH="/go" + #=======================End of layer: tools ================= FROM tools AS runtimes_1 @@ -149,6 +153,9 @@ ENV JAVA_HOME="$JAVA_11_HOME" \ JRE_HOME="$JRE_11_HOME" RUN set -ex \ + && yum -y install sudo \ + && sudo rpm --import https://yum.corretto.aws/corretto.key \ + && sudo curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo \ # Install Amazon Corretto 8 && yum install -yq java-1.8.0-amazon-corretto-devel \ # Ensure Java cacerts symlink points to valid location diff --git a/al2/aarch64/standard/2.0/runtimes.yml b/al2/aarch64/standard/2.0/runtimes.yml index f3f78b4..fd61b48 100644 --- a/al2/aarch64/standard/2.0/runtimes.yml +++ b/al2/aarch64/standard/2.0/runtimes.yml @@ -41,6 +41,22 @@ runtimes: && update-alternatives --install /usr/bin/$tool $tool $tool_path 20000; fi; done + default: + commands: + - echo "Installing custom Corretto(OpenJDK) version $VERSION ..." + - yum -y install java-$VERSION-amazon-corretto-devel + - export JAVA_HOME="/usr/lib/jvm/java-$VERSION-amazon-corretto" + - export JRE_HOME="/usr/lib/jvm/java-$VERSION-amazon-corretto" + - export JDK_HOME="/usr/lib/jvm/java-$VERSION-amazon-corretto" + - |- + for tool_path in "$JAVA_HOME"/bin/*; + do tool=`basename "$tool_path"`; + if [ $tool != 'java-rmi.cgi' ]; + then + rm -f /usr/bin/$tool /var/lib/alternatives/$tool \ + && update-alternatives --install /usr/bin/$tool $tool $tool_path 20000; + fi; + done golang: versions: 1.12: @@ -56,6 +72,12 @@ runtimes: 1.14: commands: - echo "Installing Go version 1.14 ..." + default: + commands: + - echo "Installing custom Go version $VERSION ..." + - rm -rf /usr/local/go + - goenv install $VERSION && rm -rf /tmp/* + - goenv global $VERSION python: versions: 3.9: @@ -70,6 +92,11 @@ runtimes: commands: - echo "Installing Python version 3.7 ..." - pyenv global $PYTHON_37_VERSION + default: + commands: + - echo "Installing custom Python version $VERSION ..." + - pyenv install $VERSION && rm -rf /tmp/* + - pyenv global $VERSION php: versions: 7.4: @@ -80,6 +107,11 @@ runtimes: commands: - echo "Installing PHP version 7.3 ..." - phpenv global $PHP_73_VERSION + default: + commands: + - echo "Installing custom PHP version $VERSION ..." + - phpenv install $VERSION && rm -rf /tmp/* + - phpenv global $VERSION ruby: versions: 2.6: @@ -90,6 +122,11 @@ runtimes: commands: - echo "Installing Ruby version 2.7 ..." - rbenv global $RUBY_27_VERSION + default: + commands: + - echo "Installing custom Ruby version $VERSION ..." + - rbenv install $VERSION && rm -rf /tmp/* + - rbenv global $VERSION nodejs: versions: 10: @@ -100,13 +137,22 @@ runtimes: commands: - echo "Installing Node.js version 12 ..." - n $NODE_12_VERSION + default: + commands: + - echo "Installing custom Node.js version $VERSION ..." + - n $VERSION && rm -rf /tmp/* docker: versions: 19: commands: - - echo "Using Docker 19" + - echo "Specifying docker version in buildspec is deprecated. Using docker $DOCKER_VERSION" dotnet: versions: 3.1: commands: - echo "Installing .NET version 3.1 ..." + default: + commands: + - echo "Installing custom .Net version $VERSION ..." + - /usr/local/bin/dotnet-install.sh -v $VERSION && rm -rf /tmp/* + - test -f "global.json" && echo "Using provided global.json" || dotnet new globaljson --sdk-version $VERSION \ No newline at end of file diff --git a/al2/aarch64/standard/3.0/Dockerfile b/al2/aarch64/standard/3.0/Dockerfile index d7f991d..05f4e07 100644 --- a/al2/aarch64/standard/3.0/Dockerfile +++ b/al2/aarch64/standard/3.0/Dockerfile @@ -32,11 +32,11 @@ RUN set -ex \ libtidy-devel libunwind libwebp-devel libxml2-devel libxslt libxslt-devel \ libyaml-devel libzip-devel mlocate \ ncurses-devel oniguruma-devel openssl openssl-devel perl-DBD-SQLite \ - perl-DBI perl-HTTP-Date perl-TimeDate perl-YAML-LibYAML \ + perl-DBI perl-HTTP-Date perl-TimeDate perl-YAML-LibYAML perl perl-FindBin \ postgresql-devel procps-ng python-configobj readline-devel rsync sgml-common \ patch pkg-config procps python3-configobj llvm rsync sqlite-devel \ subversion-perl tar tcl tk vim wget which xfsprogs xmlto xorg-x11-server-Xvfb xz-devel \ - amazon-ecr-credential-helper git-lfs runc + amazon-ecr-credential-helper git-lfs runc acl RUN useradd codebuild-user @@ -54,7 +54,7 @@ RUN wget -nv https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam # Install Git RUN set -ex \ - && GIT_VERSION=2.42.1 \ + && GIT_VERSION=2.45.2 \ && GIT_TAR_FILE=git-$GIT_VERSION.tar.gz \ && GIT_SRC=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz \ && curl -L -o $GIT_TAR_FILE $GIT_SRC \ @@ -140,12 +140,23 @@ RUN curl https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip -o /tmp/awscl && rm -rf /opt/aws \ && aws --version +## gh +# See instruction: https://github.com/cli/cli/blob/trunk/docs/install_linux.md#fedora-centos-red-hat-enterprise-linux-dnf +RUN yum -y install 'dnf-command(config-manager)' \ + && yum config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo \ + && yum -y install gh --repo gh-cli #=======================End of layer: tools ================= FROM tools AS runtimes_1 #**************** JAVA **************************************************** -ENV JAVA_17_HOME="/usr/lib/jvm/java-17-amazon-corretto.aarch64" \ +ENV JAVA_8_HOME="/usr/lib/jvm/java-1.8.0-amazon-corretto.aarch64" \ + JDK_8_HOME="/usr/lib/jvm/java-1.8.0-amazon-corretto.aarch64" \ + JRE_8_HOME="/usr/lib/jvm/java-1.8.0-amazon-corretto.aarch64" \ + JAVA_11_HOME="/usr/lib/jvm/java-11-amazon-corretto.aarch64" \ + JDK_11_HOME="/usr/lib/jvm/java-11-amazon-corretto.aarch64" \ + JRE_11_HOME="/usr/lib/jvm/java-11-amazon-corretto.aarch64" \ + JAVA_17_HOME="/usr/lib/jvm/java-17-amazon-corretto.aarch64" \ JDK_17_HOME="/usr/lib/jvm/java-17-amazon-corretto.aarch64" \ JRE_17_HOME="/usr/lib/jvm/java-17-amazon-corretto.aarch64/jre" \ JAVA_21_HOME="/usr/lib/jvm/java-21-amazon-corretto.aarch64" \ @@ -172,10 +183,14 @@ ENV JAVA_HOME="$JAVA_17_HOME" \ RUN set -x \ + && rpm --import https://yum.corretto.aws/corretto.key \ + && curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo \ # Install Amazon Corretto 17 # Note: We will use update-alternatives to make sure JDK17 has higher priority for all the tools - && yum install -yq java-17-amazon-corretto java-17-amazon-corretto-devel \ - && yum install -yq java-21-amazon-corretto-devel \ + && yum install -y -q java-21-amazon-corretto java-21-amazon-corretto-devel \ + && yum install -y -q java-17-amazon-corretto java-17-amazon-corretto-devel \ + && yum install -y -q java-11-amazon-corretto java-11-amazon-corretto-devel \ + && yum install -y -q java-1.8.0-amazon-corretto java-1.8.0-amazon-corretto-devel \ && for tool_path in $JAVA_HOME/bin/*; do \ tool=`basename $tool_path`; \ update-alternatives --install /usr/bin/$tool $tool $tool_path 10000; \ @@ -248,8 +263,9 @@ RUN set -ex \ #**************** NODEJS **************************************************** -ENV NODE_20_VERSION="20.10.0" -ENV NODE_18_VERSION="18.19.0" +ENV NODE_22_VERSION="22.2.0" +ENV NODE_20_VERSION="20.14.0" +ENV NODE_18_VERSION="18.20.3" RUN n $NODE_18_VERSION && npm install --save-dev -g -f grunt \ && npm install --save-dev -g -f grunt-cli \ @@ -260,41 +276,70 @@ RUN n $NODE_18_VERSION && npm install --save-dev -g -f grunt \ && npm install --save-dev -g -f webpack \ && npm install --save-dev -g -f yarn \ && dnf install -y -v libuv-1.44* \ - && cd / && rm -rf $N_SRC_DIR; rm -rf /tmp/* + && n $NODE_22_VERSION && npm install --save-dev -g -f grunt \ + && npm install --save-dev -g -f grunt-cli \ + && npm install --save-dev -g -f webpack \ + && npm install --save-dev -g -f yarn \ + && cd / && rm -rf $N_SRC_DIR \ + && rm -rf /tmp/* && rm -rf ~/.npm/_logs/ #**************** END NODEJS **************************************************** #**************** RUBY ********************************************************* -ENV RUBY_32_VERSION="3.2.2" +ENV RUBY_31_VERSION="3.1.6" +ENV RUBY_32_VERSION="3.2.4" +ENV RUBY_33_VERSION="3.3.2" -RUN rbenv install $RUBY_32_VERSION && rm -rf /tmp/* \ - && rbenv global $RUBY_32_VERSION && ruby -v +RUN rbenv install $RUBY_33_VERSION \ + && rbenv install $RUBY_32_VERSION \ + && rbenv install $RUBY_31_VERSION \ + && rbenv global $RUBY_32_VERSION && ruby -v \ + && rm -rf /tmp/* #**************** END RUBY ***************************************************** #**************** PYTHON ***************************************************** -ENV PYTHON_311_VERSION="3.11.7" -ENV PYTHON_312_VERSION="3.12.1" -ENV PYTHON_PIP_VERSION=23.3.1 +ENV PYTHON_39_VERSION="3.9.19" +ENV PYTHON_310_VERSION="3.10.14" +ENV PYTHON_311_VERSION="3.11.9" +ENV PYTHON_312_VERSION="3.12.4" +ENV PYTHON_PIP_VERSION=24.0 +ENV PYTHON_CONFIGURE_OPTS="--enable-shared --enable-loadable-sqlite-extensions" # Pin PyYAML at this version while installing aws-sam-cli via pip ENV PYYAML_VERSION=5.4.1 -COPY tools/runtime_configs/python/$PYTHON_312_VERSION /root/.pyenv/plugins/python-build/share/python-build/$PYTHON_312_VERSION -RUN env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install $PYTHON_312_VERSION && rm -rf /tmp/* -COPY tools/runtime_configs/python/$PYTHON_311_VERSION /root/.pyenv/plugins/python-build/share/python-build/$PYTHON_311_VERSION -RUN env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install $PYTHON_311_VERSION && rm -rf /tmp/* RUN set -ex \ + && pyenv install $PYTHON_39_VERSION \ + && pyenv global $PYTHON_39_VERSION \ + && pip3 install --no-cache-dir --upgrade --force-reinstall "pip==$PYTHON_PIP_VERSION" \ + && pip3 install wheel \ + && pip3 install --no-build-isolation "Cython<3" "PyYAML==$PYYAML_VERSION" \ + && pip3 install --no-cache-dir --upgrade 'setuptools==67.7.2' boto3 pipenv virtualenv \ + && pip3 uninstall cython --yes + +RUN set -ex \ + && pyenv install $PYTHON_310_VERSION \ + && pyenv global $PYTHON_310_VERSION \ + && pip3 install --no-cache-dir --upgrade --force-reinstall "pip==$PYTHON_PIP_VERSION" \ + && pip3 install wheel \ + && pip3 install --no-build-isolation "Cython<3" "PyYAML==$PYYAML_VERSION" \ + && pip3 install --no-cache-dir --upgrade 'setuptools==67.7.2' boto3 pipenv virtualenv \ + && pip3 uninstall cython --yes + +RUN set -ex \ + && pyenv install $PYTHON_311_VERSION \ && pyenv global $PYTHON_311_VERSION \ && pip3 install --no-cache-dir --upgrade --force-reinstall "pip==$PYTHON_PIP_VERSION" \ && pip3 install wheel \ && pip3 install --no-build-isolation "Cython<3" "PyYAML==$PYYAML_VERSION" \ - && pip3 install --no-cache-dir --upgrade 'setuptools==57.4.0' boto3 pipenv virtualenv \ + && pip3 install --no-cache-dir --upgrade 'setuptools==67.7.2' boto3 pipenv virtualenv \ && pip3 uninstall cython --yes RUN set -ex \ - && pyenv global $PYTHON_312_VERSION \ + && pyenv install $PYTHON_312_VERSION \ + && pyenv global $PYTHON_312_VERSION \ && pip3 install --no-cache-dir --upgrade --force-reinstall "pip==$PYTHON_PIP_VERSION" \ && pip3 install wheel \ && pip3 install --no-cache-dir --upgrade 'setuptools==67.7.2' boto3 pipenv virtualenv \ @@ -306,32 +351,36 @@ RUN set -ex \ #**************** PHP **************************************************** # Installed in packages -ENV PHP_81_VERSION="8.1.26" -ENV PHP_82_VERSION="8.2.13" -ENV PHP_83_VERSION="8.3.0" - -COPY tools/runtime_configs/php/$PHP_83_VERSION /root/.phpenv/plugins/php-build/share/php-build/definitions/$PHP_83_VERSION -RUN phpenv install $PHP_83_VERSION && rm -rf /tmp/* && phpenv global $PHP_83_VERSION -RUN echo "memory_limit = -1;" >> "/root/.phpenv/versions/$PHP_83_VERSION/etc/conf.d/memory.ini" - -COPY tools/runtime_configs/php/$PHP_82_VERSION /root/.phpenv/plugins/php-build/share/php-build/definitions/$PHP_82_VERSION -RUN phpenv install $PHP_82_VERSION && rm -rf /tmp/* && phpenv global $PHP_82_VERSION -RUN echo "memory_limit = -1;" >> "/root/.phpenv/versions/$PHP_82_VERSION/etc/conf.d/memory.ini" - -COPY tools/runtime_configs/php/$PHP_81_VERSION /root/.phpenv/plugins/php-build/share/php-build/definitions/$PHP_81_VERSION -RUN phpenv install $PHP_81_VERSION; rm -rf /tmp/*; phpenv global $PHP_81_VERSION -RUN echo "memory_limit = -1;" >> "/root/.phpenv/versions/$PHP_81_VERSION/etc/conf.d/memory.ini" - -# Install Composer globally -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer +ENV PHP_81_VERSION="8.1.28" +ENV PHP_82_VERSION="8.2.20" +ENV PHP_83_VERSION="8.3.8" + +# Set environment variables for PHP configure options +ENV PHP_BUILD_CONFIGURE_OPTS="--with-curl --with-password-argon2 --with-pdo-pgsql --with-libedit" +# Set make arguments to use 4 parallel jobs. +ENV PHP_BUILD_EXTRA_MAKE_ARGUMENTS="-j4" + +RUN phpenv update \ + && phpenv install $PHP_83_VERSION \ + && phpenv install $PHP_82_VERSION \ + && phpenv install $PHP_81_VERSION \ + && phpenv global $PHP_81_VERSION \ + && php -v \ + && echo "memory_limit = 1G;" >> "/root/.phpenv/versions/$PHP_81_VERSION/etc/conf.d/memory.ini" \ + && echo "memory_limit = 1G;" >> "/root/.phpenv/versions/$PHP_82_VERSION/etc/conf.d/memory.ini" \ + && echo "memory_limit = 1G;" >> "/root/.phpenv/versions/$PHP_83_VERSION/etc/conf.d/memory.ini" \ + && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer \ + && rm -rf /tmp/* #**************** END PHP **************************************************** #**************** GOLANG **************************************************** -ENV GOLANG_20_VERSION="1.20.12" -ENV GOLANG_21_VERSION="1.21.5" +ENV GOLANG_20_VERSION="1.20.14" +ENV GOLANG_21_VERSION="1.21.11" +ENV GOLANG_22_VERSION="1.22.4" -RUN goenv install $GOLANG_20_VERSION && rm -rf /tmp/* && \ - goenv install $GOLANG_21_VERSION && rm -rf /tmp/* +RUN goenv install $GOLANG_20_VERSION && \ + goenv install $GOLANG_21_VERSION && \ + goenv install $GOLANG_22_VERSION && rm -rf /tmp/* #**************** END GOLANG **************************************************** @@ -344,10 +393,10 @@ ENV DOCKER_BUCKET="download.docker.com" \ DOCKER_CHANNEL="stable" \ DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" -ENV DOCKER_SHA256="CBA0A6D41FBDB0A00ED5D0EC4E96C60CD76D0077CEEB428E35752C8466BEDC69" -ENV DOCKER_VERSION="23.0.6" -ENV DOCKER_COMPOSE_VERSION="2.23.1" -ARG DOCKER_BUILDX_VERSION="0.11.2" +ENV DOCKER_SHA256="6f1a5fb161aef875d305ee4f79e65492b3c13e90dbe0a339df2ad6515e4f6849" +ENV DOCKER_VERSION="26.1.4" +ENV DOCKER_COMPOSE_VERSION="2.27.0" +ARG DOCKER_BUILDX_VERSION="0.14.1" VOLUME /var/lib/docker @@ -388,8 +437,8 @@ RUN set -ex \ FROM runtimes_2 AS runtimes_3 #DotNet -ENV DOTNET_6_SDK_VERSION="6.0.419" -ENV DOTNET_8_SDK_VERSION="8.0.201" +ENV DOTNET_6_SDK_VERSION="6.0.423" +ENV DOTNET_8_SDK_VERSION="8.0.301" ENV DOTNET_6_GLOBAL_JSON_SDK_VERSION="6.0.0" ENV DOTNET_8_GLOBAL_JSON_SDK_VERSION="8.0.0" ENV DOTNET_ROOT="/root/.dotnet" @@ -417,9 +466,7 @@ RUN set -ex \ && rm -rf warmup \ && rm -rf /tmp/NuGetScratch -# Install Composer globally -RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer -#**************** END PHP **************************************************** +#**************** END DotNet **************************************************** #===================END of runtimes_3 ============== FROM runtimes_3 AS aarch64_v3 diff --git a/al2/aarch64/standard/3.0/runtimes.yml b/al2/aarch64/standard/3.0/runtimes.yml index 5aa5ff0..9c9709e 100644 --- a/al2/aarch64/standard/3.0/runtimes.yml +++ b/al2/aarch64/standard/3.0/runtimes.yml @@ -3,38 +3,77 @@ version: 0.1 runtimes: java: versions: + + corretto21: + commands: + - echo "Installing corretto(OpenJDK) version 21 ..." + - export JAVA_HOME="$JAVA_21_HOME" + - export JRE_HOME="$JRE_21_HOME" + - export JDK_HOME="$JDK_21_HOME" + - |- + for tool_path in "$JAVA_HOME"/bin/*; + do tool=`basename "$tool_path"`; + if [ $tool != 'java-rmi.cgi' ]; + then + rm -f /usr/bin/$tool /var/lib/alternatives/$tool \ + && update-alternatives --install /usr/bin/$tool $tool $tool_path 20000; + fi; + done + - export GRADLE_VERSION=$GRADLE_85_VERSION + - unlink /usr/bin/gradle + - ln -s /usr/local/gradle-$GRADLE_85_VERSION/bin/gradle /usr/bin/gradle corretto17: commands: - - echo "Installing corretto (OpenJDK) version 17 ..." - + - echo "Installing corretto(OpenJDK) version 17 ..." - export JAVA_HOME="$JAVA_17_HOME" - - export JRE_HOME="$JRE_17_HOME" - - export JDK_HOME="$JDK_17_HOME" - - |- - for tool_path in "$JAVA_HOME"/bin/*; + for tool_path in "$JAVA_HOME"/bin/*; + do tool=`basename "$tool_path"`; + if [ $tool != 'java-rmi.cgi' ]; + then + rm -f /usr/bin/$tool /var/lib/alternatives/$tool \ + && update-alternatives --install /usr/bin/$tool $tool $tool_path 20000; + fi; + done + corretto11: + commands: + - echo "Installing corretto(OpenJDK) version 11 ..." + - export JAVA_HOME="$JAVA_11_HOME" + - export JRE_HOME="$JRE_11_HOME" + - export JDK_HOME="$JDK_11_HOME" + - |- + for tool_path in "$JAVA_HOME"/bin/*; do tool=`basename "$tool_path"`; - if [ $tool != 'java-rmi.cgi' ]; - then + if [ $tool != 'java-rmi.cgi' ]; + then rm -f /usr/bin/$tool /var/lib/alternatives/$tool \ && update-alternatives --install /usr/bin/$tool $tool $tool_path 20000; - fi; + fi; done - - export GRADLE_VERSION=$GRADLE_80_VERSION - - unlink /usr/bin/gradle - - ln -s /usr/local/gradle-$GRADLE_80_VERSION/bin/gradle /usr/bin/gradle - corretto21: + corretto8: commands: - - echo "Installing corretto (OpenJDK) version 21 ..." - - - export JAVA_HOME="$JAVA_21_HOME" - - - export JRE_HOME="$JRE_21_HOME" - - - export JDK_HOME="$JDK_21_HOME" - + - echo "Installing corretto(OpenJDK) version 8 ..." + - export JAVA_HOME="$JAVA_8_HOME" + - export JRE_HOME="$JRE_8_HOME" + - export JDK_HOME="$JDK_8_HOME" + - |- + for tool_path in "$JAVA_HOME"/bin/*; + do tool=`basename "$tool_path"`; + if [ $tool != 'java-rmi.cgi' ]; + then + rm -f /usr/bin/$tool /var/lib/alternatives/$tool \ + && update-alternatives --install /usr/bin/$tool $tool $tool_path 20000; + fi; + done + default: + commands: + - echo "Installing custom Corretto(OpenJDK) version $VERSION ..." + - yum -y install java-$VERSION-amazon-corretto-devel + - export JAVA_HOME="/usr/lib/jvm/java-$VERSION-amazon-corretto" + - export JRE_HOME="/usr/lib/jvm/java-$VERSION-amazon-corretto" + - export JDK_HOME="/usr/lib/jvm/java-$VERSION-amazon-corretto" - |- for tool_path in "$JAVA_HOME"/bin/*; do tool=`basename "$tool_path"`; @@ -44,71 +83,121 @@ runtimes: && update-alternatives --install /usr/bin/$tool $tool $tool_path 20000; fi; done - - export GRADLE_VERSION=$GRADLE_85_VERSION - - unlink /usr/bin/gradle - - ln -s /usr/local/gradle-$GRADLE_85_VERSION/bin/gradle /usr/bin/gradle golang: versions: - 1.20: + 1.22: commands: - - echo "Installing Go version 1.20 ..." - - goenv global $GOLANG_20_VERSION + - echo "Installing Go version 1.22 ..." + - goenv global $GOLANG_22_VERSION 1.21: commands: - echo "Installing Go version 1.21 ..." - goenv global $GOLANG_21_VERSION + 1.20: + commands: + - echo "Installing Go version 1.20 ..." + - goenv global $GOLANG_20_VERSION + default: + commands: + - echo "Installing custom Go version $VERSION ..." + - goenv install $VERSION && rm -rf /tmp/* + - goenv global $VERSION python: versions: + 3.12: + commands: + - echo "Installing Python version 3.12 ..." + - pyenv global $PYTHON_312_VERSION 3.11: commands: - echo "Installing Python version 3.11 ..." - pyenv global $PYTHON_311_VERSION - 3.12: + 3.10: commands: - - echo "Installing Python version 3.12 ..." - - pyenv global $PYTHON_312_VERSION + - echo "Installing Python version 3.10 ..." + - pyenv global $PYTHON_310_VERSION + 3.9: + commands: + - echo "Installing Python version 3.9 ..." + - pyenv global $PYTHON_39_VERSION + default: + commands: + - echo "Installing custom Python version $VERSION ..." + - pyenv install $VERSION && rm -rf /tmp/* + - pyenv global $VERSION php: versions: - 8.1: + 8.3: commands: - - echo "Installing PHP version 8.1 ..." - - phpenv global $PHP_81_VERSION + - echo "Installing PHP version 8.3 ..." + - phpenv global $PHP_83_VERSION 8.2: commands: - echo "Installing PHP version 8.2 ..." - phpenv global $PHP_82_VERSION - 8.3: + 8.1: commands: - - echo "Installing PHP version 8.3 ..." - - phpenv global $PHP_83_VERSION + - echo "Installing PHP version 8.1 ..." + - phpenv global $PHP_81_VERSION + default: + commands: + - echo "Installing custom PHP version $VERSION ..." + - phpenv install $VERSION && rm -rf /tmp/* + - phpenv global $VERSION ruby: versions: + 3.3: + commands: + - echo "Installing Ruby version 3.3 ..." + - rbenv global $RUBY_33_VERSION 3.2: commands: - echo "Installing Ruby version 3.2 ..." - rbenv global $RUBY_32_VERSION + 3.1: + commands: + - echo "Installing Ruby version 3.1 ..." + - rbenv global $RUBY_31_VERSION + default: + commands: + - echo "Installing custom Ruby version $VERSION ..." + - rbenv install $VERSION && rm -rf /tmp/* + - rbenv global $VERSION nodejs: versions: - 18: + 22: commands: - - echo "Installing Node.js version 18 ..." - - n $NODE_18_VERSION + - echo "Installing Node.js version 22 ..." + - n $NODE_22_VERSION 20: commands: - echo "Installing Node.js version 20 ..." - n $NODE_20_VERSION + 18: + commands: + - echo "Installing Node.js version 18 ..." + - n $NODE_18_VERSION + default: + commands: + - echo "Installing custom Node.js version $VERSION ..." + - n $VERSION && rm -rf /tmp/* docker: versions: 23: commands: - - echo "Using Docker 23" + - echo "Specifying docker version in buildspec is deprecated. Using docker $DOCKER_VERSION" dotnet: versions: + 8.0: + commands: + - echo "Installing .NET version 8.0 ..." + - test -f "global.json" && echo "Using provided global.json" || dotnet new globaljson --sdk-version $DOTNET_8_GLOBAL_JSON_SDK_VERSION --roll-forward feature 6.0: commands: - echo "Installing .NET version 6.0 ..." - - test -f "global.json" && echo "Using provided global.json" || dotnet new globaljson --force --sdk-version $DOTNET_6_GLOBAL_JSON_SDK_VERSION --roll-forward feature - 8.0: + - test -f "global.json" && echo "Using provided global.json" || dotnet new globaljson --sdk-version $DOTNET_6_GLOBAL_JSON_SDK_VERSION --roll-forward feature + default: commands: - - echo "Installing .NET version 8.0 ..." - - test -f "global.json" && echo "Using provided global.json" || dotnet new globaljson --force --sdk-version $DOTNET_8_GLOBAL_JSON_SDK_VERSION --roll-forward feature + - echo "Installing custom .Net version $VERSION ..." + - /usr/local/bin/dotnet-install.sh -v $VERSION && rm -rf /tmp/* + - test -f "global.json" && echo "Using provided global.json" || dotnet new globaljson --sdk-version $VERSION --roll-forward feature \ No newline at end of file diff --git a/al2/x86_64/standard/5.0/Dockerfile b/al2/x86_64/standard/5.0/Dockerfile index 34d0fd2..ca43e18 100644 --- a/al2/x86_64/standard/5.0/Dockerfile +++ b/al2/x86_64/standard/5.0/Dockerfile @@ -36,7 +36,7 @@ RUN set -ex \ perl-DBI perl-HTTP-Date perl-TimeDate perl-YAML-LibYAML \ postgresql-devel procps-ng python-configobj readline-devel rsync sgml-common \ subversion-perl tar tcl tk vim wget which xfsprogs xmlto xorg-x11-server-Xvfb xz-devel \ - amazon-ecr-credential-helper git-lfs \ + amazon-ecr-credential-helper git-lfs acl \ && rm /etc/yum.repos.d/mono-centos7-stable.repo RUN useradd codebuild-user @@ -64,7 +64,7 @@ RUN curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o /tmp/awscli # Install Git RUN set -ex \ - && GIT_VERSION=2.42.1 \ + && GIT_VERSION=2.45.2 \ && GIT_TAR_FILE=git-$GIT_VERSION.tar.gz \ && GIT_SRC=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz \ && curl -L -o $GIT_TAR_FILE $GIT_SRC \ @@ -106,15 +106,15 @@ RUN set -ex \ RUN (curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pack-v0.32.1-linux.tgz" \ | tar -C /usr/local/bin/ --no-same-owner -xzv pack) -#Docker 23 +#Docker 26 ENV DOCKER_BUCKET="download.docker.com" \ DOCKER_CHANNEL="stable" \ DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \ - DOCKER_COMPOSE_VERSION="2.23.1" \ - DOCKER_BUILDX_VERSION="0.11.0" + DOCKER_COMPOSE_VERSION="2.27.0" \ + DOCKER_BUILDX_VERSION="0.14.1" -ENV DOCKER_SHA256="544262F4A3621222AFB79960BFAD4D486935DAB80893478B5CC9CF8EBAF409AE" -ENV DOCKER_VERSION="23.0.6" +ENV DOCKER_SHA256="a9cede81aa3337f310132c2c920dba2edc8d29b7d97065b63ba41cf47ae1ca4f" +ENV DOCKER_VERSION="26.1.4" VOLUME /var/lib/docker @@ -153,6 +153,11 @@ RUN set -ex \ # Cleanup && rm -rf /tmp/* /var/tmp/* +# Install gh +# See instruction: https://github.com/cli/cli/blob/trunk/docs/install_linux.md#fedora-centos-red-hat-enterprise-linux-dnf +RUN yum -y install 'dnf-command(config-manager)' \ + && yum config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo \ + && yum -y install gh --repo gh-cli #=======================End of stage: tools ================= FROM tools AS runtimes @@ -248,8 +253,9 @@ RUN sbt version -Dsbt.rootdir=true \ #**************** NODEJS ***************************************************** ENV N_SRC_DIR="$SRC_DIR/n" -ENV NODE_18_VERSION="18.19.1" -ENV NODE_20_VERSION="20.11.1" +ENV NODE_18_VERSION="18.20.3" +ENV NODE_20_VERSION="20.14.0" +ENV NODE_22_VERSION="22.2.0" RUN git clone https://github.com/tj/n $N_SRC_DIR \ && cd $N_SRC_DIR && make install @@ -263,8 +269,12 @@ RUN n $NODE_18_VERSION && npm install --save-dev -g -f grunt \ && npm install --save-dev -g -f webpack \ && npm install --save-dev -g -f yarn \ && dnf install -y -v libuv-1.44* \ + && n $NODE_22_VERSION && npm install --save-dev -g -f grunt \ + && npm install --save-dev -g -f grunt-cli \ + && npm install --save-dev -g -f webpack \ + && npm install --save-dev -g -f yarn \ && cd / && rm -rf $N_SRC_DIR \ - && rm -rf /tmp/* + && rm -rf /tmp/* && rm -rf ~/.npm/_logs/ #**************** END NODEJS ************************************************** #**************** RUBY ***************************************************************** @@ -281,9 +291,9 @@ RUN set -ex \ && git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_SRC_DIR \ && sh $RUBY_BUILD_SRC_DIR/install.sh -ENV RUBY_33_VERSION="3.3.0" -ENV RUBY_32_VERSION="3.2.3" -ENV RUBY_31_VERSION="3.1.4" +ENV RUBY_33_VERSION="3.3.2" +ENV RUBY_32_VERSION="3.2.4" +ENV RUBY_31_VERSION="3.1.6" RUN rbenv install $RUBY_33_VERSION \ && rbenv install $RUBY_32_VERSION \ @@ -298,10 +308,10 @@ RUN rbenv install $RUBY_33_VERSION \ RUN curl -s -S -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash ENV PATH="/root/.pyenv/shims:/root/.pyenv/bin:$PATH" -ENV PYTHON_311_VERSION="3.11.8" \ - PYTHON_312_VERSION="3.12.2" \ - PYTHON_310_VERSION="3.10.13" \ - PYTHON_39_VERSION="3.9.18" \ +ENV PYTHON_311_VERSION="3.11.9" \ + PYTHON_312_VERSION="3.12.4" \ + PYTHON_310_VERSION="3.10.14" \ + PYTHON_39_VERSION="3.9.19" \ PYTHON_PIP_VERSION=24.0 \ PYYAML_VERSION=5.4.1 \ PYTHON_CONFIGURE_OPTS="--enable-shared --enable-loadable-sqlite-extensions" @@ -354,8 +364,8 @@ RUN set -ex \ RUN curl -L https://raw.githubusercontent.com/phpenv/phpenv-installer/master/bin/phpenv-installer | bash ENV PATH="/root/.phpenv/shims:/root/.phpenv/bin:$PATH" -ENV PHP_83_VERSION="8.3.4" -ENV PHP_82_VERSION="8.2.17" +ENV PHP_83_VERSION="8.3.8" +ENV PHP_82_VERSION="8.2.20" # Set environment variables for PHP configure options ENV PHP_BUILD_CONFIGURE_OPTS="--with-curl --with-password-argon2 --with-pdo-pgsql --with-libedit" # Set make arguments to use 4 parallel jobs. @@ -380,9 +390,9 @@ ENV PATH="/root/.goenv/shims:/root/.goenv/bin:/go/bin:$PATH" ENV GOENV_DISABLE_GOPATH=1 ENV GOPATH="/go" -ENV GOLANG_22_VERSION="1.22.1" -ENV GOLANG_21_VERSION="1.21.8" -ENV GOLANG_20_VERSION="1.20.13" +ENV GOLANG_22_VERSION="1.22.4" +ENV GOLANG_21_VERSION="1.21.11" +ENV GOLANG_20_VERSION="1.20.14" ENV GOENV_DISABLE_GOPATH=1 ENV GOPATH="/go" @@ -404,8 +414,8 @@ RUN set -ex \ && chmod +x /usr/local/bin/dotnet-install.sh #DotNet 6.0 -ENV DOTNET_6_SDK_VERSION="6.0.420" -ENV DOTNET_8_SDK_VERSION="8.0.203" +ENV DOTNET_6_SDK_VERSION="6.0.423" +ENV DOTNET_8_SDK_VERSION="8.0.301" ENV DOTNET_6_GLOBAL_JSON_SDK_VERSION="6.0.0" ENV DOTNET_8_GLOBAL_JSON_SDK_VERSION="8.0.0" ENV DOTNET_ROOT="/root/.dotnet" diff --git a/al2/x86_64/standard/5.0/runtimes.yml b/al2/x86_64/standard/5.0/runtimes.yml index 6559ffc..1b68849 100644 --- a/al2/x86_64/standard/5.0/runtimes.yml +++ b/al2/x86_64/standard/5.0/runtimes.yml @@ -157,6 +157,10 @@ runtimes: - rbenv global $VERSION nodejs: versions: + 22: + commands: + - echo "Installing Node.js version 22 ..." + - n $NODE_22_VERSION 20: commands: - echo "Installing Node.js version 20 ..." diff --git a/ubuntu/standard/5.0/Dockerfile b/ubuntu/standard/5.0/Dockerfile index f0da7e2..bad93c3 100644 --- a/ubuntu/standard/5.0/Dockerfile +++ b/ubuntu/standard/5.0/Dockerfile @@ -1,4 +1,4 @@ -# Copyright 2020-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. +# Copyright 2020-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Amazon Software License (the "License"). You may not use this file except in compliance with the License. # A copy of the License is located at @@ -19,10 +19,6 @@ RUN set -ex \ && apt install -y -qq apt-transport-https gnupg ca-certificates \ && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ && apt-get install software-properties-common -y -qq --no-install-recommends \ - && apt-add-repository -y ppa:git-core/ppa \ - && apt-get update \ - && apt-get install git=1:2.* -y -qq --no-install-recommends \ - && git version \ && apt-get install -y -qq --no-install-recommends openssh-client \ && mkdir ~/.ssh \ && mkdir -p /codebuild/image/config \ @@ -60,6 +56,19 @@ RUN useradd codebuild-user FROM core AS tools +# Install Git +RUN set -ex \ + && GIT_VERSION=2.43.2 \ + && GIT_TAR_FILE=git-$GIT_VERSION.tar.gz \ + && GIT_SRC=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz \ + && curl -L -o $GIT_TAR_FILE $GIT_SRC \ + && tar zxf $GIT_TAR_FILE \ + && cd git-$GIT_VERSION \ + && make -j4 \ + && make install prefix=/usr \ + && cd .. && rm -rf git-$GIT_VERSION \ + && rm -rf $GIT_TAR_FILE /tmp/* + # Install Firefox RUN set -ex \ && apt-add-repository -y "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner" \ @@ -72,7 +81,7 @@ RUN set -ex \ && geckodriver --version # Install Chrome -ENV CHROME_VERSION="114.0.5735.198-1" +ENV CHROME_VERSION="126.0.6478.55-1" RUN set -ex \ && wget --no-verbose -O /tmp/chrome.deb https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}_amd64.deb \ @@ -83,14 +92,13 @@ RUN set -ex \ # Install ChromeDriver RUN set -ex \ - && CHROME_VERSION=`google-chrome --version | awk -F '[ .]' '{print $3"."$4"."$5}'` \ - && CHROME_DRIVER_VERSION=`wget -qO- chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_VERSION` \ - && wget -qO /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip \ + && CHROME_VERSION=`google-chrome --version | awk -F '[ .]' '{print $3"."$4"."$5"."$6}'` \ + && wget -qO /tmp/chromedriver_linux64.zip https://storage.googleapis.com/chrome-for-testing-public/${CHROME_VERSION}/linux64/chromedriver-linux64.zip \ && unzip -q /tmp/chromedriver_linux64.zip -d /opt \ && rm /tmp/chromedriver_linux64.zip \ - && mv /opt/chromedriver /opt/chromedriver-$CHROME_DRIVER_VERSION \ - && chmod 755 /opt/chromedriver-$CHROME_DRIVER_VERSION \ - && ln -s /opt/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver \ + && mv /opt/chromedriver-linux64 /opt/chromedriver-${CHROME_VERSION} \ + && chmod 755 /opt/chromedriver-${CHROME_VERSION} \ + && ln -s /opt/chromedriver-${CHROME_VERSION}/chromedriver /usr/bin/chromedriver \ && chromedriver --version # Install stunnel diff --git a/ubuntu/standard/6.0/Dockerfile b/ubuntu/standard/6.0/Dockerfile index e8011c2..e91084d 100644 --- a/ubuntu/standard/6.0/Dockerfile +++ b/ubuntu/standard/6.0/Dockerfile @@ -19,10 +19,6 @@ RUN set -ex \ && apt install -y -qq apt-transport-https gnupg ca-certificates \ && apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF \ && apt-get install software-properties-common -y -qq --no-install-recommends \ - && apt-add-repository -y ppa:git-core/ppa \ - && apt-get update \ - && apt-get install git=1:2.* -y -qq --no-install-recommends \ - && git version \ && apt-get install -y -qq --no-install-recommends openssh-client \ && mkdir ~/.ssh \ && mkdir -p /codebuild/image/config \ @@ -60,6 +56,19 @@ RUN useradd codebuild-user FROM core AS tools +# Install Git +RUN set -ex \ + && GIT_VERSION=2.43.2 \ + && GIT_TAR_FILE=git-$GIT_VERSION.tar.gz \ + && GIT_SRC=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz \ + && curl -L -o $GIT_TAR_FILE $GIT_SRC \ + && tar zxf $GIT_TAR_FILE \ + && cd git-$GIT_VERSION \ + && make -j4 \ + && make install prefix=/usr \ + && cd .. && rm -rf git-$GIT_VERSION \ + && rm -rf $GIT_TAR_FILE /tmp/* + # Install stunnel RUN set -ex \ && STUNNEL_VERSION=5.69 \ diff --git a/ubuntu/standard/7.0/Dockerfile b/ubuntu/standard/7.0/Dockerfile index e362fff..464049a 100644 --- a/ubuntu/standard/7.0/Dockerfile +++ b/ubuntu/standard/7.0/Dockerfile @@ -16,7 +16,7 @@ ARG DEBIAN_FRONTEND="noninteractive" RUN set -ex \ && echo 'Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/99use-gzip-compression \ && apt-get update \ - && apt install -y -qq apt-transport-https gnupg ca-certificates \ + && apt install -y -qq apt-transport-https gnupg ca-certificates sudo \ && apt-get install software-properties-common -y -qq --no-install-recommends \ && apt-get install -y -qq --no-install-recommends openssh-client \ && mkdir ~/.ssh \ @@ -43,7 +43,7 @@ RUN set -ex \ netbase openssl patch pkg-config procps python3-configobj \ python3-openssl rsync sgml-base sgml-data \ tar tcl tcl8.6 tk tk-dev unzip wget xfsprogs xml-core xmlto xsltproc \ - libzip-dev vim xvfb xz-utils zip zlib1g-dev git-lfs \ + libzip-dev vim xvfb xz-utils zip zlib1g-dev git-lfs acl \ && rm -rf /var/lib/apt/lists/* ENV LC_CTYPE="C.UTF-8" @@ -56,7 +56,7 @@ FROM core AS tools # Install Git RUN set -ex \ - && GIT_VERSION=2.42.1 \ + && GIT_VERSION=2.45.2 \ && GIT_TAR_FILE=git-$GIT_VERSION.tar.gz \ && GIT_SRC=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz \ && curl -L -o $GIT_TAR_FILE $GIT_SRC \ @@ -124,12 +124,12 @@ RUN (curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pac ARG DOCKER_BUCKET="download.docker.com" ARG DOCKER_CHANNEL="stable" ARG DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" -ARG DOCKER_COMPOSE_VERSION="2.23.1" -ARG DOCKER_BUILDX_VERSION="0.11.0" +ARG DOCKER_COMPOSE_VERSION="2.27.0" +ARG DOCKER_BUILDX_VERSION="0.14.1" ARG SRC_DIR="/usr/src" -ARG DOCKER_SHA256="544262F4A3621222AFB79960BFAD4D486935DAB80893478B5CC9CF8EBAF409AE" -ARG DOCKER_VERSION="23.0.6" +ARG DOCKER_SHA256="a9cede81aa3337f310132c2c920dba2edc8d29b7d97065b63ba41cf47ae1ca4f" +ARG DOCKER_VERSION="26.1.4" # Install Docker RUN set -ex \ @@ -168,6 +168,14 @@ RUN set -ex \ VOLUME /var/lib/docker #*********************** END DOCKER **************************** +# Install gh +# Instruction: https://github.com/cli/cli/blob/trunk/docs/install_linux.md#debian-ubuntu-linux-raspberry-pi-os-apt +RUN mkdir -p -m 755 /etc/apt/keyrings \ + && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ + && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ + && apt update \ + && apt install gh -y #=======================End of stage: tools ================= FROM tools AS runtimes @@ -179,8 +187,8 @@ RUN set -ex \ && wget -qO /usr/local/bin/dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ && chmod +x /usr/local/bin/dotnet-install.sh -ENV DOTNET_6_SDK_VERSION="6.0.420" -ENV DOTNET_8_SDK_VERSION="8.0.203" +ENV DOTNET_6_SDK_VERSION="6.0.423" +ENV DOTNET_8_SDK_VERSION="8.0.301" ENV DOTNET_6_GLOBAL_JSON_SDK_VERSION="6.0.0" ENV DOTNET_8_GLOBAL_JSON_SDK_VERSION="8.0.0" ENV DOTNET_ROOT="/root/.dotnet" @@ -230,8 +238,9 @@ ARG N_SRC_DIR="$SRC_DIR/n" RUN git clone https://github.com/tj/n $N_SRC_DIR \ && cd $N_SRC_DIR && make install -ENV NODE_18_VERSION="18.19.1" -ENV NODE_20_VERSION="20.11.1" +ENV NODE_18_VERSION="18.20.3" +ENV NODE_20_VERSION="20.14.0" +ENV NODE_22_VERSION="22.2.0" RUN n $NODE_18_VERSION && npm install --save-dev -g -f grunt \ && npm install --save-dev -g -f grunt-cli \ @@ -241,6 +250,10 @@ RUN n $NODE_18_VERSION && npm install --save-dev -g -f grunt \ && npm install --save-dev -g -f grunt-cli \ && npm install --save-dev -g -f webpack \ && npm install --save-dev -g -f yarn \ + && n $NODE_22_VERSION && npm install --save-dev -g -f grunt \ + && npm install --save-dev -g -f grunt-cli \ + && npm install --save-dev -g -f webpack \ + && npm install --save-dev -g -f yarn \ && cd / && rm -rf $N_SRC_DIR && rm -rf /tmp/* #**************** END NODEJS **************************************************** @@ -259,9 +272,9 @@ RUN set -ex \ && git clone https://github.com/rbenv/ruby-build.git $RUBY_BUILD_SRC_DIR \ && sh $RUBY_BUILD_SRC_DIR/install.sh -ENV RUBY_33_VERSION="3.3.0" -ENV RUBY_32_VERSION="3.2.3" -ENV RUBY_31_VERSION="3.1.4" +ENV RUBY_33_VERSION="3.3.2" +ENV RUBY_32_VERSION="3.2.4" +ENV RUBY_31_VERSION="3.1.6" RUN rbenv install $RUBY_33_VERSION \ && rbenv install $RUBY_32_VERSION \ @@ -277,10 +290,10 @@ RUN rbenv install $RUBY_33_VERSION \ RUN curl -s -S -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash ENV PATH="/root/.pyenv/shims:/root/.pyenv/bin:$PATH" -ENV PYTHON_311_VERSION="3.11.8" \ - PYTHON_312_VERSION="3.12.2" \ - PYTHON_310_VERSION="3.10.13" \ - PYTHON_39_VERSION="3.9.18" \ +ENV PYTHON_311_VERSION="3.11.9" \ + PYTHON_312_VERSION="3.12.4" \ + PYTHON_310_VERSION="3.10.14" \ + PYTHON_39_VERSION="3.9.19" \ PYTHON_PIP_VERSION="24.0" \ PYYAML_VERSION="5.4.1" \ PYTHON_CONFIGURE_OPTS="--enable-shared --enable-loadable-sqlite-extensions" @@ -334,8 +347,8 @@ RUN set -ex \ RUN curl -L https://raw.githubusercontent.com/phpenv/phpenv-installer/master/bin/phpenv-installer | bash ENV PATH="/root/.phpenv/shims:/root/.phpenv/bin:$PATH" -ENV PHP_83_VERSION="8.3.4" -ENV PHP_82_VERSION="8.2.17" +ENV PHP_83_VERSION="8.3.8" +ENV PHP_82_VERSION="8.2.20" # Set environment variables for PHP configure options ENV PHP_BUILD_CONFIGURE_OPTS="--with-curl --with-password-argon2 --with-pdo-pgsql --with-libedit" # Set make arguments to use 4 parallel jobs. @@ -359,9 +372,9 @@ ENV PATH="/root/.goenv/shims:/root/.goenv/bin:/go/bin:$PATH" ENV GOENV_DISABLE_GOPATH=1 ENV GOPATH="/go" -ENV GOLANG_22_VERSION="1.22.1" -ENV GOLANG_21_VERSION="1.21.8" -ENV GOLANG_20_VERSION="1.20.13" +ENV GOLANG_22_VERSION="1.22.4" +ENV GOLANG_21_VERSION="1.21.11" +ENV GOLANG_20_VERSION="1.20.14" ENV GOENV_DISABLE_GOPATH=1 ENV GOPATH="/go" diff --git a/ubuntu/standard/7.0/runtimes.yml b/ubuntu/standard/7.0/runtimes.yml index 94689dc..5a29757 100644 --- a/ubuntu/standard/7.0/runtimes.yml +++ b/ubuntu/standard/7.0/runtimes.yml @@ -163,6 +163,10 @@ runtimes: - rbenv global $VERSION nodejs: versions: + 22: + commands: + - echo "Installing Node.js version 22 ..." + - n $NODE_22_VERSION 20: commands: - echo "Installing Node.js version 20 ..."