mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 10:02:56 +01:00
Update to Debian bullseye
bullseye is the latest stable, and this is what we will be using for Cloud Native GitLab going forward so we should test with this. Since an upgrade of the operating system may break pre-compiled C extensions, we now introduce a DEBIAN environment flag that defaults to the legacy buster install but allows us to roll out a bullseye image with `debian-bullseye` as the image name prefix.
This commit is contained in:
parent
cc18fe8b5b
commit
9d6dd5061a
10 changed files with 50 additions and 15 deletions
|
|
@ -2,7 +2,8 @@
|
||||||
.gitaly-matrix:
|
.gitaly-matrix:
|
||||||
parallel:
|
parallel:
|
||||||
matrix:
|
matrix:
|
||||||
- RUBY: ['2.7', '3.0']
|
- DEBIAN: ['bullseye']
|
||||||
|
RUBY: ['2.7', '3.0']
|
||||||
GOLANG: ['1.16', '1.17']
|
GOLANG: ['1.16', '1.17']
|
||||||
GIT: ['2.31', '2.33']
|
GIT: ['2.31', '2.33']
|
||||||
PGBOUNCER: ['1.14', '']
|
PGBOUNCER: ['1.14', '']
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@
|
||||||
GRAPHICSMAGICK: '1.3.36'
|
GRAPHICSMAGICK: '1.3.36'
|
||||||
parallel:
|
parallel:
|
||||||
matrix:
|
matrix:
|
||||||
- RUBY: ['2.7.patched', '3.0.patched']
|
- DEBIAN: ['bullseye']
|
||||||
|
RUBY: ['2.7.patched', '3.0.patched']
|
||||||
GIT: ['2.33']
|
GIT: ['2.33']
|
||||||
POSTGRESQL: ['11', '12', '13']
|
POSTGRESQL: ['11', '12', '13']
|
||||||
GOLANG: ['1.16', '1.17']
|
GOLANG: ['1.16', '1.17']
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,9 @@ RUN if [ -n "$LFS_VERSION" ]; then /scripts/install-lfs && git lfs --version; fi
|
||||||
|
|
||||||
# Postgres
|
# Postgres
|
||||||
ARG POSTGRES_VERSION
|
ARG POSTGRES_VERSION
|
||||||
|
ARG DEBIAN_VERSION
|
||||||
|
|
||||||
RUN if [ -n "$POSTGRES_VERSION" ] ; then /scripts/install-postgresql $POSTGRES_VERSION; fi
|
RUN if [ -n "$POSTGRES_VERSION" ] ; then /scripts/install-postgresql $POSTGRES_VERSION $DEBIAN_VERSION; fi
|
||||||
|
|
||||||
# GraphicsMagick
|
# GraphicsMagick
|
||||||
ARG GRAPHISMAGICK_VERSION
|
ARG GRAPHISMAGICK_VERSION
|
||||||
|
|
@ -66,8 +67,9 @@ RUN if [ -n "$GRAPHISMAGICK_VERSION" ]; then /scripts/install-graphicsmagick &&
|
||||||
|
|
||||||
# Docker
|
# Docker
|
||||||
ARG DOCKER_VERSION
|
ARG DOCKER_VERSION
|
||||||
|
ARG DEBIAN_VERSION
|
||||||
|
|
||||||
RUN if [ -n "$DOCKER_VERSION" ]; then /scripts/install-docker $DOCKER_VERSION; fi
|
RUN if [ -n "$DOCKER_VERSION" ]; then /scripts/install-docker $DOCKER_VERSION $DEBIAN_VERSION; fi
|
||||||
|
|
||||||
# PgBouncer
|
# PgBouncer
|
||||||
ARG PGBOUNCER_VERSION
|
ARG PGBOUNCER_VERSION
|
||||||
|
|
@ -98,4 +100,5 @@ ENV RUBY_VERSION=${RUBY_VERSION} \
|
||||||
GRAPHISMAGICK_VERSION=${GRAPHISMAGICK_VERSION} \
|
GRAPHISMAGICK_VERSION=${GRAPHISMAGICK_VERSION} \
|
||||||
DOCKER_VERSION=${DOCKER_VERSION} \
|
DOCKER_VERSION=${DOCKER_VERSION} \
|
||||||
PGBOUNCER_VERSION=${PGBOUNCER_VERSION} \
|
PGBOUNCER_VERSION=${PGBOUNCER_VERSION} \
|
||||||
BAZELISK_VERSION=${BAZELISK_VERSION}
|
BAZELISK_VERSION=${BAZELISK_VERSION} \
|
||||||
|
DEBIAN_VERSION=${DEBIAN_VERSION}
|
||||||
|
|
|
||||||
|
|
@ -249,6 +249,7 @@ function parse_arguments() {
|
||||||
if [ -n "${!tool}" ]; then
|
if [ -n "${!tool}" ]; then
|
||||||
version="${!tool}"
|
version="${!tool}"
|
||||||
case "$tool" in
|
case "$tool" in
|
||||||
|
DEBIAN) CUSTOM_IMAGE_VERSION=$version ;;
|
||||||
RUBY) print_ruby_args $version ;;
|
RUBY) print_ruby_args $version ;;
|
||||||
GOLANG) print_golang_args $version ;;
|
GOLANG) print_golang_args $version ;;
|
||||||
CHROME) print_chrome_args $version ;;
|
CHROME) print_chrome_args $version ;;
|
||||||
|
|
@ -268,6 +269,7 @@ function parse_arguments() {
|
||||||
|
|
||||||
printf -- "--build-arg CUSTOM_IMAGE_NAME=%s " "$CUSTOM_IMAGE_NAME"
|
printf -- "--build-arg CUSTOM_IMAGE_NAME=%s " "$CUSTOM_IMAGE_NAME"
|
||||||
printf -- "--build-arg CUSTOM_IMAGE_VERSION=%s " "$CUSTOM_IMAGE_VERSION"
|
printf -- "--build-arg CUSTOM_IMAGE_VERSION=%s " "$CUSTOM_IMAGE_VERSION"
|
||||||
|
printf -- "--build-arg DEBIAN_VERSION=%s " "$CUSTOM_IMAGE_VERSION"
|
||||||
}
|
}
|
||||||
|
|
||||||
function generate_command() {
|
function generate_command() {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ set -xeuo pipefail
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
DOCKER_VERSION=${1}
|
DOCKER_VERSION=${1}
|
||||||
|
DEBIAN_VERSION=${2:-buster}
|
||||||
|
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get -y install \
|
apt-get -y install \
|
||||||
|
|
@ -16,7 +17,7 @@ apt-get -y install \
|
||||||
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
||||||
|
|
||||||
|
|
||||||
echo "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" >> /etc/apt/sources.list.d/docker.list
|
echo "deb [arch=amd64] https://download.docker.com/linux/debian ${DEBIAN_VERSION} stable" >> /etc/apt/sources.list.d/docker.list
|
||||||
apt-get update
|
apt-get update
|
||||||
|
|
||||||
PACKAGE_VERSION=$(apt-cache policy docker-ce | awk -v dv=${DOCKER_VERSION}~ '$1 ~ dv {print $1}')
|
PACKAGE_VERSION=$(apt-cache policy docker-ce | awk -v dv=${DOCKER_VERSION}~ '$1 ~ dv {print $1}')
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,7 @@ apt-get update
|
||||||
# We install `git-core` as some tooling expect `/usr/bin/git`
|
# We install `git-core` as some tooling expect `/usr/bin/git`
|
||||||
# other tools that rely on PATH ordering will pick a one in `/usr/local`
|
# other tools that rely on PATH ordering will pick a one in `/usr/local`
|
||||||
# if present
|
# if present
|
||||||
|
function install_debian_stretch_deps() {
|
||||||
if grep "Debian GNU/Linux 9" /etc/issue
|
|
||||||
then
|
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
curl wget build-essential apt-utils locales openssh-client \
|
curl wget build-essential apt-utils locales openssh-client \
|
||||||
libssl-dev libyaml-dev libreadline6-dev zlib1g-dev \
|
libssl-dev libyaml-dev libreadline6-dev zlib1g-dev \
|
||||||
|
|
@ -23,7 +21,9 @@ then
|
||||||
libkrb5-dev postgresql-client mysql-client unzip \
|
libkrb5-dev postgresql-client mysql-client unzip \
|
||||||
libsqlite3-dev libpq-dev libpng-dev libjpeg-dev libzstd-dev \
|
libsqlite3-dev libpq-dev libpng-dev libjpeg-dev libzstd-dev \
|
||||||
libre2-dev libevent-dev gettext rsync git-core
|
libre2-dev libevent-dev gettext rsync git-core
|
||||||
else
|
}
|
||||||
|
|
||||||
|
function install_debian_buster_deps() {
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
curl wget build-essential apt-utils locales openssh-client \
|
curl wget build-essential apt-utils locales openssh-client \
|
||||||
libssl-dev libyaml-dev libreadline-dev zlib1g-dev \
|
libssl-dev libyaml-dev libreadline-dev zlib1g-dev \
|
||||||
|
|
@ -33,7 +33,33 @@ else
|
||||||
libkrb5-dev postgresql-client unzip \
|
libkrb5-dev postgresql-client unzip \
|
||||||
libsqlite3-dev libpq-dev libpng-dev libjpeg-dev libzstd-dev \
|
libsqlite3-dev libpq-dev libpng-dev libjpeg-dev libzstd-dev \
|
||||||
libre2-dev libevent-dev gettext rsync git-core
|
libre2-dev libevent-dev gettext rsync git-core
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
function install_debian_bullseye_deps() {
|
||||||
|
apt-get install -y \
|
||||||
|
curl wget build-essential apt-utils locales openssh-client \
|
||||||
|
libssl-dev libyaml-dev libreadline-dev zlib1g-dev \
|
||||||
|
libncurses5-dev libffi-dev ca-certificates libxml2-dev \
|
||||||
|
libxslt1-dev libcurl4-openssl-dev libicu-dev \
|
||||||
|
logrotate python3-docutils pkg-config cmake \
|
||||||
|
libkrb5-dev postgresql-client unzip \
|
||||||
|
libsqlite3-dev libpq-dev libpng-dev libjpeg-dev libzstd-dev \
|
||||||
|
libre2-dev libevent-dev gettext rsync git-core
|
||||||
|
}
|
||||||
|
|
||||||
|
VERSION=`cat /etc/issue | cut -d ' ' -f 3`
|
||||||
|
|
||||||
|
case "$VERSION" in
|
||||||
|
9)
|
||||||
|
install_debian_stretch_deps
|
||||||
|
;;
|
||||||
|
10)
|
||||||
|
install_debian_buster_deps
|
||||||
|
;;
|
||||||
|
11)
|
||||||
|
install_debian_bullseye_deps
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Set UTF-8
|
# Set UTF-8
|
||||||
# http://stackoverflow.com/a/3182519/2137281
|
# http://stackoverflow.com/a/3182519/2137281
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ curl -sS -L https://deb.nodesource.com/setup_${NODE_MAJOR} | bash -
|
||||||
|
|
||||||
apt-get update
|
apt-get update
|
||||||
|
|
||||||
NODE_FILE_NAME="nodejs_$NODE_INSTALL_VERSION-1nodesource1_amd64.deb"
|
NODE_FILE_NAME="nodejs_$NODE_INSTALL_VERSION-deb-1nodesource1_amd64.deb"
|
||||||
curl -s -O "https://deb.nodesource.com/node_$NODE_MAJOR/pool/main/n/nodejs/$NODE_FILE_NAME"
|
curl -s -O "https://deb.nodesource.com/node_$NODE_MAJOR/pool/main/n/nodejs/$NODE_FILE_NAME"
|
||||||
dpkg -i "$NODE_FILE_NAME"
|
dpkg -i "$NODE_FILE_NAME"
|
||||||
rm -f "$NODE_FILE_NAME"
|
rm -f "$NODE_FILE_NAME"
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,11 @@ set -xeuo pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
POSTGRES_VERSION=${1:-12}
|
POSTGRES_VERSION=${1:-12}
|
||||||
|
DEBIAN_VERSION=${2:-buster}
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
curl -sS -L https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
curl -sS -L https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
||||||
echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" | tee /etc/apt/sources.list.d/postgresql.list
|
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${DEBIAN_VERSION}-pgdg main" | tee /etc/apt/sources.list.d/postgresql.list
|
||||||
|
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y postgresql-client-${POSTGRES_VERSION}
|
apt-get install -y postgresql-client-${POSTGRES_VERSION}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
set -xeou pipefail
|
set -xeou pipefail
|
||||||
|
|
||||||
# Based on https://github.com/docker-library/ruby/blob/master/2.7/buster/Dockerfile
|
# Based on https://github.com/docker-library/ruby/blob/master/2.7/bullseye/Dockerfile
|
||||||
|
|
||||||
RUBY_VERSION=${1}
|
RUBY_VERSION=${1}
|
||||||
RUBY_MAJOR=${1%.*} # strip last component
|
RUBY_MAJOR=${1%.*} # strip last component
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
TOOLS=(RUBY GOLANG GIT LFS CHROME NODE YARN POSTGRESQL GRAPHICSMAGICK PGBOUNCER BAZELISK)
|
TOOLS=(DEBIAN RUBY GOLANG GIT LFS CHROME NODE YARN POSTGRESQL GRAPHICSMAGICK PGBOUNCER BAZELISK)
|
||||||
|
|
||||||
function get_image_name(){
|
function get_image_name(){
|
||||||
local IMAGE_NAME
|
local IMAGE_NAME
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue