CI: Upgrade our CI Docker images to the latest stable Debian + Ubuntu versions

This upgrades our Docker images from various Debian versions (mostly
`buster`, a.k.a. `oldstable`) to `bullseye` (a.k.a. `stable`).

`buster`/`oldstable` is still supported but I'm not sure for how long.

It also upgrades our HGE Docker image Ubuntu 20.04 to Ubuntu 22.04.

This will allow us to provide the latest Microsoft SQL Server Driver,
`msodbcsql18`, which is supported on both x86_64 (amd64) and
aarch64 (arm64).

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5604
GitOrigin-RevId: 385d8670476dd343635a4fbc564a6797c8872127
This commit is contained in:
Samir Talwar 2022-10-03 15:15:38 +02:00 committed by hasura-bot
parent 1635ddd607
commit 000e9c2f24
2 changed files with 52 additions and 50 deletions

View File

@ -1,40 +1,41 @@
# DATE VERSION: 2022-08-02
# DATE VERSION: 2022-09-21
# Modify the above date version (YYYY-MM-DD) if you want to rebuild the image for security updates
FROM debian:buster-20220711-slim
FROM debian:bullseye-20220912-slim
# TARGETPLATFORM is automatically set up by docker buildx based on the platform we are targetting for
ARG TARGETPLATFORM
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
RUN groupadd -g 1001 hasura && useradd -m -u 1001 -g hasura hasura
RUN set -ex; \
groupadd -g 1001 hasura; \
useradd -m -u 1001 -g hasura hasura
RUN apt-get update \
&& apt-get install -y gnupg2 curl apt-transport-https \
&& apt-get update \
&& apt-get install -y ca-certificates libkrb5-3 libpq5 libnuma1 unixodbc-dev default-libmysqlclient-dev default-mysql-client
RUN set -ex; \
apt-get update; \
apt-get install -y apt-transport-https curl gnupg2; \
apt-get update; \
apt-get install -y ca-certificates libkrb5-3 libpq5 libnuma1 unixodbc-dev libmariadb-dev-compat mariadb-client
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ] ; then \
curl -s https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& curl -s https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y msodbcsql17 ; \
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -; \
curl https://packages.microsoft.com/config/debian/11/prod.list > /etc/apt/sources.list.d/mssql-release.list; \
apt-get update; \
ACCEPT_EULA=Y apt-get install -y msodbcsql17; \
fi
# Install pg_dump
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
&& curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& apt-get -y update \
&& apt-get install -y \
postgresql-client-14 \
RUN set -ex; \
curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -; \
echo 'deb http://apt.postgresql.org/pub/repos/apt bullseye-pgdg main' > /etc/apt/sources.list.d/pgdg.list; \
apt-get -y update; \
apt-get install -y postgresql-client; \
# delete all pg tools except pg_dump to keep the image minimal
&& find /usr/bin -name 'pg*' -not -path '/usr/bin/pg_dump' -delete
find /usr/bin -name 'pg*' -not -path '/usr/bin/pg_dump' -delete
# Cleanup unwanted files and packages
RUN apt-get -y remove curl gnupg2 \
&& apt-get -y auto-remove \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /usr/share/doc/ \
&& rm -rf /usr/share/man/ \
&& rm -rf /usr/share/locale/
RUN set -ex; \
apt-get -y remove curl gnupg2; \
apt-get -y auto-remove; \
apt-get -y clean; \
rm -rf /var/lib/apt/lists/* /usr/share/doc/ /usr/share/man/ /usr/share/locale/

View File

@ -1,40 +1,41 @@
# DATE VERSION: 2022-05-16
# DATE VERSION: 2022-09-21
# Modify the above date version (YYYY-MM-DD) if you want to rebuild the image for security updates
FROM ubuntu:focal-20220801
FROM ubuntu:jammy-20220815
# TARGETPLATFORM is automatically set up by docker buildx based on the platform we are targetting for
ARG TARGETPLATFORM
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
RUN groupadd -g 1001 hasura && useradd -m -u 1001 -g hasura hasura
RUN set -ex; \
groupadd -g 1001 hasura; \
useradd -m -u 1001 -g hasura hasura
RUN apt-get update \
&& apt-get install -y gnupg2 curl apt-transport-https \
&& apt-get update \
&& apt-get install -y ca-certificates libkrb5-3 libpq5 libnuma1 unixodbc-dev libmariadb-dev-compat mariadb-client-10.3
RUN set -ex; \
apt-get update; \
apt-get install -y apt-transport-https curl gnupg2; \
apt-get update; \
apt-get install -y ca-certificates libkrb5-3 libpq5 libnuma1 unixodbc-dev libmariadb-dev-compat mariadb-client
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ] ; then \
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
&& curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y msodbcsql17 ; \
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -; \
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list; \
apt-get update; \
ACCEPT_EULA=Y apt-get install -y msodbcsql17; \
fi
# Install pg_dump
RUN echo "deb http://apt.postgresql.org/pub/repos/apt focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
&& curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& apt-get -y update \
&& apt-get install -y \
postgresql-client-14 \
RUN set -ex; \
curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -; \
echo 'deb http://apt.postgresql.org/pub/repos/apt jammy-pgdg main' > /etc/apt/sources.list.d/pgdg.list; \
apt-get -y update; \
apt-get install -y postgresql-client; \
# delete all pg tools except pg_dump to keep the image minimal
&& find /usr/bin -name 'pg*' -not -path '/usr/bin/pg_dump' -delete
find /usr/bin -name 'pg*' -not -path '/usr/bin/pg_dump' -delete
# Cleanup unwanted files and packages
RUN apt-get -y remove gnupg2 \
&& apt-get -y auto-remove \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /usr/share/doc/ \
&& rm -rf /usr/share/man/ \
&& rm -rf /usr/share/locale/
RUN set -ex; \
apt-get -y remove curl gnupg2; \
apt-get -y auto-remove; \
apt-get -y clean; \
rm -rf /var/lib/apt/lists/* /usr/share/doc/ /usr/share/man/ /usr/share/locale/