From 000e9c2f24f2b64980c2346c0beac6f08afa8a0c Mon Sep 17 00:00:00 2001 From: Samir Talwar Date: Mon, 3 Oct 2022 15:15:38 +0200 Subject: [PATCH] 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 --- .../graphql-engine-base/debian.dockerfile | 51 ++++++++++--------- .../graphql-engine-base/ubuntu.dockerfile | 51 ++++++++++--------- 2 files changed, 52 insertions(+), 50 deletions(-) diff --git a/packaging/graphql-engine-base/debian.dockerfile b/packaging/graphql-engine-base/debian.dockerfile index d6374c42e82..8411b047284 100644 --- a/packaging/graphql-engine-base/debian.dockerfile +++ b/packaging/graphql-engine-base/debian.dockerfile @@ -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 \ - # delete all pg tools except pg_dump to keep the image minimal - && find /usr/bin -name 'pg*' -not -path '/usr/bin/pg_dump' -delete +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 # 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/ \ No newline at end of file +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/ diff --git a/packaging/graphql-engine-base/ubuntu.dockerfile b/packaging/graphql-engine-base/ubuntu.dockerfile index 235952439aa..72dca5bd7c7 100644 --- a/packaging/graphql-engine-base/ubuntu.dockerfile +++ b/packaging/graphql-engine-base/ubuntu.dockerfile @@ -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 \ - # delete all pg tools except pg_dump to keep the image minimal - && find /usr/bin -name 'pg*' -not -path '/usr/bin/pg_dump' -delete +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 # 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/ \ No newline at end of file +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/