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 # 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 # TARGETPLATFORM is automatically set up by docker buildx based on the platform we are targetting for
ARG TARGETPLATFORM ARG TARGETPLATFORM
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 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 \ RUN set -ex; \
&& apt-get install -y gnupg2 curl apt-transport-https \ apt-get update; \
&& apt-get update \ apt-get install -y apt-transport-https curl gnupg2; \
&& apt-get install -y ca-certificates libkrb5-3 libpq5 libnuma1 unixodbc-dev default-libmysqlclient-dev default-mysql-client 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 \ 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 https://packages.microsoft.com/keys/microsoft.asc | apt-key add -; \
&& curl -s 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 \ apt-get update; \
&& ACCEPT_EULA=Y apt-get install -y msodbcsql17 ; \ ACCEPT_EULA=Y apt-get install -y msodbcsql17; \
fi fi
# Install pg_dump # Install pg_dump
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ RUN set -ex; \
&& curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -; \
&& apt-get -y update \ echo 'deb http://apt.postgresql.org/pub/repos/apt bullseye-pgdg main' > /etc/apt/sources.list.d/pgdg.list; \
&& apt-get install -y \ apt-get -y update; \
postgresql-client-14 \ apt-get install -y postgresql-client; \
# delete all pg tools except pg_dump to keep the image minimal # 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 # Cleanup unwanted files and packages
RUN apt-get -y remove curl gnupg2 \ RUN set -ex; \
&& apt-get -y auto-remove \ apt-get -y remove curl gnupg2; \
&& apt-get -y clean \ apt-get -y auto-remove; \
&& rm -rf /var/lib/apt/lists/* \ apt-get -y clean; \
&& rm -rf /usr/share/doc/ \ rm -rf /var/lib/apt/lists/* /usr/share/doc/ /usr/share/man/ /usr/share/locale/
&& rm -rf /usr/share/man/ \
&& rm -rf /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 # 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 # TARGETPLATFORM is automatically set up by docker buildx based on the platform we are targetting for
ARG TARGETPLATFORM ARG TARGETPLATFORM
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 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 \ RUN set -ex; \
&& apt-get install -y gnupg2 curl apt-transport-https \ apt-get update; \
&& apt-get update \ apt-get install -y apt-transport-https curl gnupg2; \
&& apt-get install -y ca-certificates libkrb5-3 libpq5 libnuma1 unixodbc-dev libmariadb-dev-compat mariadb-client-10.3 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 \ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ] ; then \
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ 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 \ curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list; \
&& apt-get update \ apt-get update; \
&& ACCEPT_EULA=Y apt-get install -y msodbcsql17 ; \ ACCEPT_EULA=Y apt-get install -y msodbcsql17; \
fi fi
# Install pg_dump # Install pg_dump
RUN echo "deb http://apt.postgresql.org/pub/repos/apt focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ RUN set -ex; \
&& curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ curl -s https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -; \
&& apt-get -y update \ echo 'deb http://apt.postgresql.org/pub/repos/apt jammy-pgdg main' > /etc/apt/sources.list.d/pgdg.list; \
&& apt-get install -y \ apt-get -y update; \
postgresql-client-14 \ apt-get install -y postgresql-client; \
# delete all pg tools except pg_dump to keep the image minimal # 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 # Cleanup unwanted files and packages
RUN apt-get -y remove gnupg2 \ RUN set -ex; \
&& apt-get -y auto-remove \ apt-get -y remove curl gnupg2; \
&& apt-get -y clean \ apt-get -y auto-remove; \
&& rm -rf /var/lib/apt/lists/* \ apt-get -y clean; \
&& rm -rf /usr/share/doc/ \ rm -rf /var/lib/apt/lists/* /usr/share/doc/ /usr/share/man/ /usr/share/locale/
&& rm -rf /usr/share/man/ \
&& rm -rf /usr/share/locale/