132 lines
3.9 KiB
Docker
132 lines
3.9 KiB
Docker
#FROM golang:1.18-alpine AS wal-g
|
|
#
|
|
#ARG WALG_VERSION=2.0.1
|
|
#
|
|
#RUN set -eux &&\
|
|
# apk --no-cache upgrade &&\
|
|
# apk --no-cache \
|
|
# --virtual build-deps \
|
|
# add musl-dev \
|
|
# gcc \
|
|
# zstd-dev \
|
|
# lz4-dev \
|
|
# brotli-dev \
|
|
# lzo-dev \
|
|
# libsodium-dev \
|
|
# make \
|
|
# cmake \
|
|
# curl \
|
|
# git \
|
|
# bash \
|
|
# ca-certificates &&\
|
|
# cd /tmp &&\
|
|
# git clone --branch=v${WALG_VERSION} --depth=1 https://github.com/wal-g/wal-g.git &&\
|
|
# cd wal-g &&\
|
|
# export USE_BROTLI=1 &&\
|
|
# export USE_LIBSODIUM=1 &&\
|
|
# export USE_LZO=1 &&\
|
|
# make deps &&\
|
|
# make pg_build &&\
|
|
# mv main/pg/wal-g /usr/local/bin/ &&\
|
|
# chown root:root /usr/local/bin/wal-g &&\
|
|
# chmod 755 /usr/local/bin/wal-g &&\
|
|
# apk del build-deps
|
|
|
|
|
|
FROM danielberteaud/alpine:24.3-1 AS pgbackrest
|
|
|
|
ARG PGBACKREST_VERSION=2.48
|
|
|
|
RUN set -eux &&\
|
|
apk --no-cache upgrade &&\
|
|
apk --no-cache \
|
|
--virtual build-deps \
|
|
add postgresql15-dev \
|
|
musl-dev \
|
|
openssl-dev \
|
|
libxml2-dev \
|
|
lz4-dev \
|
|
zstd-dev \
|
|
bzip2-dev \
|
|
yaml-dev \
|
|
libssh2-dev \
|
|
make \
|
|
curl \
|
|
ca-certificates \
|
|
tar &&\
|
|
cd /tmp &&\
|
|
curl -sSLO https://github.com/pgbackrest/pgbackrest/archive/release/${PGBACKREST_VERSION}.tar.gz &&\
|
|
tar xvzf ${PGBACKREST_VERSION}.tar.gz &&\
|
|
cd pgbackrest-release-${PGBACKREST_VERSION}/src &&\
|
|
./configure &&\
|
|
make &&\
|
|
cp pgbackrest /usr/local/bin &&\
|
|
chown root:root /usr/local/bin/pgbackrest &&\
|
|
chmod 755 /usr/local/bin/pgbackrest &&\
|
|
apk del build-deps
|
|
|
|
FROM danielberteaud/alpine:24.3-1
|
|
MAINTAINER Daniel Berteaud <dbd@ehtrace.com>
|
|
|
|
ARG PG_VERSION=15
|
|
|
|
ENV LANG=fr_FR.utf8 \
|
|
TZ=Europe/Paris \
|
|
PGDATA=/data/db/${PG_VERSION} \
|
|
PATH=/usr/lib/postgresql${PG_VERSION}:${PATH} \
|
|
PG_USER=postgres \
|
|
PG_CONFFILE=postgresql.conf \
|
|
PG_CONF_listen_addresses="'0.0.0.0'" \
|
|
PG_CONF_timezone="'Europe/Paris'" \
|
|
PG_CONF_log_timezone="'Europe/Paris'" \
|
|
PG_CONF_log_line_prefix="'[%l-1] user=%u,db=%d,app=%a,client=%h '" \
|
|
PG_CONF_shared_buffers=25% \
|
|
PG_CONF_maintenance_work_mem=5% \
|
|
PG_CONF_work_mem=1% \
|
|
PG_CONF_wal_compression=zstd \
|
|
PG_CONF_log_min_duration_statement=2000 \
|
|
PG_CONF_log_destination=stderr \
|
|
PG_CONF_log_directory="'/proc/1/fd/'" \
|
|
PG_CONF_log_filename=1 \
|
|
PGHOST=/run/postgresql \
|
|
PGBACKREST_PG1_PATH=/data/db/${PG_VERSION} \
|
|
PGBACKREST_LOCK_PATH=/dev/shm \
|
|
PGBACKREST_COMPRESS_TYPE=zst \
|
|
PGBACKREST_START_FAST=y \
|
|
PGBACKREST_REPO1_BLOCK=y \
|
|
PGBACKREST_REPO1_BUNDLE=y \
|
|
PGBACKREST_REPO1_SFTP_PRIVATE_KEY_FILE=/data/ssh/id_ed25519 \
|
|
PGBACKREST_SPOOL_PATH=/data/spool \
|
|
PGBACKREST_ARCHIVE_ASYNC=y \
|
|
PGBACKREST_ARCHIVE_PUSH_QUEUE_MAX=5GiB \
|
|
PGBACKREST_LOG_PATH=/data/log \
|
|
PGBACKREST_LOG_LEVEL_CONSOLE=detail \
|
|
PGBACKREST_REPO1_RETENTION_HISTORY=365
|
|
|
|
RUN set -eux &&\
|
|
apk --no-cache upgrade &&\
|
|
apk --no-cache add postgresql${PG_VERSION} \
|
|
postgresql${PG_VERSION}-client \
|
|
postgresql${PG_VERSION}-contrib \
|
|
postgresql-timescaledb \
|
|
icu-data-full \
|
|
tzdata \
|
|
openssh-keygen \
|
|
libssh2 \
|
|
supercronic &&\
|
|
mkdir -p /data/db/${PG_VERSION} &&\
|
|
mkdir -p /data/ssh &&\
|
|
mkdir -p /data/spool &&\
|
|
mkdir -p /data/log &&\
|
|
mkdir -p /run/postgresql &&\
|
|
chmod 750 /data/db/${PG_VERSION} /data/ssh /data/spool /data/log &&\
|
|
chown -R postgres:postgres /data /run/postgresql
|
|
|
|
COPY --from=pgbackrest /usr/local/bin/pgbackrest /usr/local/bin/pgbackrest
|
|
#COPY --from=wal-g /usr/local/bin/wal-g /usr/local/bin/wal-g
|
|
COPY root/ /
|
|
|
|
EXPOSE 5432
|
|
USER postgres
|
|
CMD ["postgres"]
|