diff --git a/.github/workflows/build_and_push_docker_images.yaml b/.github/workflows/build_and_push_docker_images.yaml index 96d852d74..b17c97e82 100644 --- a/.github/workflows/build_and_push_docker_images.yaml +++ b/.github/workflows/build_and_push_docker_images.yaml @@ -69,7 +69,7 @@ permissions: jobs: build: runs-on: ${{ github.repository_owner == 'emqx' && fromJSON(format('["self-hosted","ephemeral","linux","{0}"]', matrix.arch)) || 'ubuntu-22.04' }} - container: "ghcr.io/emqx/emqx-builder/${{ inputs.builder_vsn }}:${{ inputs.elixir_vsn }}-${{ inputs.otp_vsn }}-debian11" + container: "ghcr.io/emqx/emqx-builder/${{ inputs.builder_vsn }}:${{ inputs.elixir_vsn }}-${{ inputs.otp_vsn }}-debian12" outputs: PKG_VSN: ${{ steps.build.outputs.PKG_VSN }} @@ -166,7 +166,7 @@ jobs: DOCKER_BUILD_NOCACHE: true DOCKER_PLATFORMS: linux/amd64,linux/arm64 DOCKER_LOAD: true - EMQX_RUNNER: 'public.ecr.aws/debian/debian:11-slim@sha256:22cfb3c06a7dd5e18d86123a73405664475b9d9fa209cbedcf4c50a25649cc74' + EMQX_RUNNER: 'public.ecr.aws/debian/debian:12-slim' EMQX_DOCKERFILE: 'deploy/docker/Dockerfile' PKG_VSN: ${{ needs.build.outputs.PKG_VSN }} EMQX_BUILDER_VERSION: ${{ inputs.builder_vsn }} diff --git a/Makefile b/Makefile index 5c23ae93d..2dddd4fbe 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,8 @@ REBAR = $(CURDIR)/rebar3 BUILD = $(CURDIR)/build SCRIPTS = $(CURDIR)/scripts export EMQX_RELUP ?= true -export EMQX_DEFAULT_BUILDER = ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-debian11 -export EMQX_DEFAULT_RUNNER = public.ecr.aws/debian/debian:11-slim +export EMQX_DEFAULT_BUILDER = ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-debian12 +export EMQX_DEFAULT_RUNNER = public.ecr.aws/debian/debian:12-slim export EMQX_REL_FORM ?= tgz export QUICER_DOWNLOAD_FROM_RELEASE = 1 ifeq ($(OS),Windows_NT) diff --git a/build b/build index e21ff99e2..d63260d1d 100755 --- a/build +++ b/build @@ -183,10 +183,10 @@ just_compile() { just_compile_elixir() { ./scripts/pre-compile.sh "$PROFILE" rm -f rebar.lock - # shellcheck disable=SC1010 - env MIX_ENV="$PROFILE" mix do local.hex --if-missing --force, \ - local.rebar rebar3 "${PWD}/rebar3" --if-missing --force, \ - deps.get + env MIX_ENV="$PROFILE" mix local.rebar --if-missing --force + env MIX_ENV="$PROFILE" mix local.rebar rebar3 "${PWD}/rebar3" --if-missing --force + env MIX_ENV="$PROFILE" mix local.hex --if-missing --force + env MIX_ENV="$PROFILE" mix deps.get env MIX_ENV="$PROFILE" mix compile } @@ -201,13 +201,11 @@ make_rel() { make_elixir_rel() { ./scripts/pre-compile.sh "$PROFILE" export_elixir_release_vars "$PROFILE" - # for some reason, this has to be run outside "do"... - mix local.rebar --if-missing --force - # shellcheck disable=SC1010 - mix do local.hex --if-missing --force, \ - local.rebar rebar3 "${PWD}/rebar3" --if-missing --force, \ - deps.get - mix release --overwrite + env MIX_ENV="$PROFILE" mix local.rebar --if-missing --force + env MIX_ENV="$PROFILE" mix local.rebar rebar3 "${PWD}/rebar3" --if-missing --force + env MIX_ENV="$PROFILE" mix local.hex --if-missing --force + env MIX_ENV="$PROFILE" mix deps.get + env MIX_ENV="$PROFILE" mix release --overwrite assert_no_excluded_deps emqx-enterprise emqx_telemetry } @@ -395,10 +393,10 @@ function is_ecr_and_enterprise() { fi } -## Build the default docker image based on debian 11. +## Build the default docker image based on debian 12. make_docker() { local EMQX_BUILDER_VERSION="${EMQX_BUILDER_VERSION:-5.3-2}" - local EMQX_BUILDER_PLATFORM="${EMQX_BUILDER_PLATFORM:-debian11}" + local EMQX_BUILDER_PLATFORM="${EMQX_BUILDER_PLATFORM:-debian12}" local EMQX_BUILDER_OTP="${EMQX_BUILDER_OTP:-25.3.2-2}" local EMQX_BUILDER_ELIXIR="${EMQX_BUILDER_ELIXIR:-1.15.7}" local EMQX_BUILDER=${EMQX_BUILDER:-ghcr.io/emqx/emqx-builder/${EMQX_BUILDER_VERSION}:${EMQX_BUILDER_ELIXIR}-${EMQX_BUILDER_OTP}-${EMQX_BUILDER_PLATFORM}} @@ -431,7 +429,7 @@ make_docker() { local PRODUCT_URL='https://www.emqx.io' local PRODUCT_DESCRIPTION='Official docker image for EMQX, the most scalable open-source MQTT broker for IoT, IIoT, and connected vehicles.' local DOCUMENTATION_URL='https://www.emqx.io/docs/en/latest/' - ## extra_deps is a comma separated list of debian 11 package names + ## extra_deps is a comma separated list of debian 12 package names local EXTRA_DEPS='' if [[ "$PROFILE" = *enterprise* ]]; then EXTRA_DEPS='libsasl2-2,libsasl2-modules-gssapi-mit' diff --git a/changes/ce/feat-12679.en.md b/changes/ce/feat-12679.en.md new file mode 100644 index 000000000..ea2131e1b --- /dev/null +++ b/changes/ce/feat-12679.en.md @@ -0,0 +1 @@ +Upgrade docker image base from Debian 11 to Debian 12 diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile index 88e05dcad..3fd68ad70 100644 --- a/deploy/docker/Dockerfile +++ b/deploy/docker/Dockerfile @@ -1,5 +1,5 @@ -ARG BUILD_FROM=ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-debian11@sha256:48b62a5636bd6bc59688fc98a498401fccf456fa63d843aa0b7279f3bc20b22e -ARG RUN_FROM=public.ecr.aws/debian/debian:11-slim@sha256:22cfb3c06a7dd5e18d86123a73405664475b9d9fa209cbedcf4c50a25649cc74 +ARG BUILD_FROM=ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-debian12 +ARG RUN_FROM=public.ecr.aws/debian/debian:12-slim ARG SOURCE_TYPE=src # tgz FROM ${BUILD_FROM} as builder_src @@ -10,7 +10,7 @@ ARG PROFILE=emqx ARG PKG_VSN ARG SUFFIX ARG TARGETARCH -ONBUILD COPY ${PROFILE}-${PKG_VSN}${SUFFIX}-debian11-$TARGETARCH.tar.gz /${PROFILE}.tar.gz +ONBUILD COPY ${PROFILE}-${PKG_VSN}${SUFFIX}-debian12-$TARGETARCH.tar.gz /${PROFILE}.tar.gz FROM builder_${SOURCE_TYPE} as builder diff --git a/deploy/docker/Dockerfile.msodbc b/deploy/docker/Dockerfile.msodbc index dc3898333..7d491fc50 100644 --- a/deploy/docker/Dockerfile.msodbc +++ b/deploy/docker/Dockerfile.msodbc @@ -7,15 +7,16 @@ ## $ docker build -f=Dockerfile.msodbc -t emqx-enterprise-with-msodbc:5.0.3-alpha.2 . ## ``` -ARG VERSION=5.2.0 +ARG VERSION=5.5.0 FROM emqx/emqx-enterprise:$VERSION USER root RUN apt-get update \ && apt-get install -y gnupg2 curl apt-utils \ + && . /etc/os-release \ && 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 \ + && curl "https://packages.microsoft.com/config/debian/$VERSION_ID/prod.list" > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y msodbcsql17 unixodbc-dev \ && sed -i 's/ODBC Driver 17 for SQL Server/ms-sql/g' /etc/odbcinst.ini \ diff --git a/mix.exs b/mix.exs index dfd34be8a..0c3189e9d 100644 --- a/mix.exs +++ b/mix.exs @@ -98,7 +98,7 @@ defmodule EMQXUmbrella.MixProject do # set by hackney (dependency) {:ssl_verify_fun, "1.1.7", override: true}, {:rfc3339, github: "emqx/rfc3339", tag: "0.2.3", override: true}, - {:bcrypt, github: "emqx/erlang-bcrypt", tag: "0.6.1", override: true}, + {:bcrypt, github: "emqx/erlang-bcrypt", tag: "0.6.2", override: true}, {:uuid, github: "okeuday/uuid", tag: "v2.0.6", override: true}, {:quickrand, github: "okeuday/quickrand", tag: "v2.0.6", override: true} ] ++ diff --git a/rebar.config b/rebar.config index e6b1ee70e..4e23394a7 100644 --- a/rebar.config +++ b/rebar.config @@ -110,7 +110,7 @@ {uuid, {git, "https://github.com/okeuday/uuid.git", {tag, "v2.0.6"}}}, {ssl_verify_fun, "1.1.7"}, {rfc3339, {git, "https://github.com/emqx/rfc3339.git", {tag, "0.2.3"}}}, - {bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {tag, "0.6.1"}}} + {bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {tag, "0.6.2"}}} ]}. {xref_ignores, diff --git a/scripts/buildx.sh b/scripts/buildx.sh index f0c11ae89..90d33e9be 100755 --- a/scripts/buildx.sh +++ b/scripts/buildx.sh @@ -9,7 +9,7 @@ ## example: ## ./scripts/buildx.sh --profile emqx --pkgtype tgz --arch arm64 \ -## --builder ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-debian11 +## --builder ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-debian12 set -euo pipefail @@ -24,7 +24,7 @@ help() { echo "--arch amd64|arm64: Target arch to build the EMQX package for" echo "--src_dir : EMQX source code in this dir, default to PWD" echo "--builder : Builder image to pull" - echo " E.g. ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-debian11" + echo " E.g. ghcr.io/emqx/emqx-builder/5.3-2:1.15.7-26.2.1-2-debian12" } die() {