From d2d3f71a21fa90d4f3e6a1cef45177f43351a0ab Mon Sep 17 00:00:00 2001 From: Ben Iofel Date: Thu, 22 Aug 2024 17:57:43 -0400 Subject: [PATCH] Fix locale for pg16 (#260) --- pg16/Dockerfile | 14 ++++++++++++++ pg16/Dockerfile-timescaledb | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/pg16/Dockerfile b/pg16/Dockerfile index 523fe59..1ef0103 100644 --- a/pg16/Dockerfile +++ b/pg16/Dockerfile @@ -39,6 +39,20 @@ LABEL fly.version=${VERSION} LABEL fly.pg-version=${PG_VERSION} LABEL fly.pg-manager=repmgr +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +RUN set -eux; \ + if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then \ + # if this file exists, we're likely in "debian:xxx-slim", and locales are thus being excluded so we need to remove that exclusion (since we need locales) + grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \ + sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; \ + ! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \ + fi; \ + apt-get update; apt-get install -y --no-install-recommends locales; rm -rf /var/lib/apt/lists/*; \ + echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen; \ + locale-gen; \ + locale -a | grep 'en_US.utf8' +ENV LANG en_US.utf8 + RUN apt-get update && apt-get install --no-install-recommends -y \ ca-certificates iproute2 curl bash dnsutils vim socat procps ssh gnupg rsync barman-cli barman barman-cli-cloud python3-setuptools cron gosu \ && apt autoremove -y && apt clean && \ diff --git a/pg16/Dockerfile-timescaledb b/pg16/Dockerfile-timescaledb index 700ab7b..e983599 100644 --- a/pg16/Dockerfile-timescaledb +++ b/pg16/Dockerfile-timescaledb @@ -38,6 +38,20 @@ LABEL fly.version=${VERSION} LABEL fly.pg-version=${PG_VERSION} LABEL fly.pg-manager=repmgr +# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default +RUN set -eux; \ + if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then \ + # if this file exists, we're likely in "debian:xxx-slim", and locales are thus being excluded so we need to remove that exclusion (since we need locales) + grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \ + sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; \ + ! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; \ + fi; \ + apt-get update; apt-get install -y --no-install-recommends locales; rm -rf /var/lib/apt/lists/*; \ + echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen; \ + locale-gen; \ + locale -a | grep 'en_US.utf8' +ENV LANG en_US.utf8 + RUN apt-get update && apt-get install --no-install-recommends -y \ ca-certificates iproute2 curl bash dnsutils vim socat procps ssh gnupg rsync barman-cli barman barman-cli-cloud python3-setuptools cron gosu \ && apt autoremove -y && apt clean && \