2022-12-23 21:16:03 +08:00
|
|
|
# From https://github.com/docker-library/postgres/blob/master/15/alpine/Dockerfile
|
2023-02-13 21:03:56 +08:00
|
|
|
FROM postgres:15.2-alpine
|
2021-11-30 18:20:42 +08:00
|
|
|
|
2023-01-16 01:22:31 +08:00
|
|
|
RUN apk add --no-cache bash openssl shadow netcat-openbsd grep mawk
|
2022-02-10 02:34:43 +08:00
|
|
|
|
|
|
|
# We need to use the same gid and uid as on old installations
|
2021-11-30 18:20:42 +08:00
|
|
|
RUN set -ex; \
|
2022-02-10 02:34:43 +08:00
|
|
|
deluser postgres; \
|
|
|
|
groupmod -g 9999 ping; \
|
|
|
|
addgroup -g 999 -S postgres; \
|
|
|
|
adduser -u 999 -S -D -G postgres -H -h /var/lib/postgresql -s /bin/sh postgres
|
2021-11-30 18:20:42 +08:00
|
|
|
|
2022-02-10 04:59:51 +08:00
|
|
|
# Fix default permissions
|
|
|
|
RUN set -ex; \
|
|
|
|
chown -R postgres:postgres /var/lib/postgresql; \
|
|
|
|
chown -R postgres:postgres /var/run/postgresql; \
|
|
|
|
chown -R postgres:postgres "$PGDATA"
|
|
|
|
|
2021-11-30 18:20:42 +08:00
|
|
|
COPY start.sh /usr/bin/
|
2023-01-03 01:16:12 +08:00
|
|
|
COPY healthcheck.sh /usr/bin/
|
2022-02-12 09:29:20 +08:00
|
|
|
COPY init-user-db.sh /docker-entrypoint-initdb.d/
|
2023-01-03 01:16:12 +08:00
|
|
|
RUN set -ex; \
|
|
|
|
chmod +x /usr/bin/start.sh; \
|
|
|
|
chmod +xr /docker-entrypoint-initdb.d/init-user-db.sh; \
|
|
|
|
chmod +x /usr/bin/healthcheck.sh
|
2021-11-30 18:20:42 +08:00
|
|
|
|
|
|
|
RUN mkdir /mnt/data; \
|
|
|
|
chown postgres:postgres /mnt/data;
|
|
|
|
|
|
|
|
VOLUME /mnt/data
|
|
|
|
|
|
|
|
# Give root a random password
|
|
|
|
RUN echo "root:$(openssl rand -base64 12)" | chpasswd
|
|
|
|
|
|
|
|
USER postgres
|
|
|
|
ENTRYPOINT ["start.sh"]
|
2022-08-25 21:06:23 +08:00
|
|
|
|
2023-01-03 01:16:12 +08:00
|
|
|
HEALTHCHECK CMD healthcheck.sh
|
2023-01-30 22:33:12 +08:00
|
|
|
LABEL com.centurylinklabs.watchtower.monitor-only="true"
|