Matt Avery 0b214f3b30
All checks were successful
Build Docker Image / build (push) Successful in 5s
workflow
2025-06-24 23:03:17 -04:00

52 lines
2.0 KiB
Docker

FROM golang:1-alpine AS builder
ENV WALG_VERSION v3.0.5
ENV USE_BROTLI 1
RUN set -ex \
&& apk add --no-cache wget git build-base bash brotli-dev cmake
RUN set -ex \
&& git clone https://github.com/wal-g/wal-g/ $GOPATH/src/wal-g \
&& cd $GOPATH/src/wal-g/ \
&& git checkout $WALG_VERSION \
&& make deps
RUN set -ex \
&& cd $GOPATH/src/wal-g/ \
&& echo $(git rev-parse --short HEAD) \
&& echo $(git tag -l --points-at HEAD) \
&& GOBIN=/usr/local/bin make pg_install
RUN wal-g --help
RUN ls -la /usr/local/bin/wal-g*
FROM postgres:alpine
COPY --from=builder /usr/local/bin/wal-g /usr/local/bin/wal-g
RUN mkdir -p /etc/postgresql/ \
&& cp /usr/local/share/postgresql/postgresql.conf.sample /etc/postgresql/postgresql.conf.tmpl \
&& sed -ri "s/^#archive_mode = off/archive_mode = {{.Env.ARCHIVE_MODE}}/" /etc/postgresql/postgresql.conf.tmpl \
&& sed -ri "s/^#archive_timeout = 0/archive_timeout = {{.Env.ARCHIVE_TIMEOUT}}/" /etc/postgresql/postgresql.conf.tmpl \
&& sed -ri "s/^#archive_command = ''/archive_command = '\/wal-g wal-push %p'/" /etc/postgresql/postgresql.conf.tmpl \
&& sed -ri "s/^#restore_command = ''/restore_command = '\/wal-g wal-fetch %f %p'/" /etc/postgresql/postgresql.conf.tmpl
ADD docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod u+x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
# See environment variables documentation https://github.com/wal-g/wal-g#configuration
#ENV WALE_S3_PREFIX=s3://bucket/path/to/folder
#ENV AWS_ACCESS_KEY_ID=xxxx
#ENV AWS_SECRET_ACCESS_KEY=secret
#ENV AWS_REGION=us-west-2
#ENV AWS_ENDPOINT=http://s3-like-service:9000
ENV AWS_S3_FORCE_PATH_STYLE true
ENV WALG_COMPRESSION_METHOD brotli
# See environment variables documentation https://github.com/wal-g/wal-g/blob/master/PostgreSQL.md#configuration
ENV PGHOST /var/run/postgresql
ENV PGUSER postgres
#ENV PGPASSWORD=secret
ENV ARCHIVE_MODE off
ENV ARCHIVE_TIMEOUT 0
#ENV WALG_PGP_KEY_PATH=/keys/wal-g.pub
CMD ["postgres", "-c", "config_file=/etc/postgresql/postgresql.conf"]