https://gist.github.com/eladtamary/5fb6317d033284671dde9877a105775b
FROM postgres:9.6.8
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
ca-certificates \
build-essential \
postgresql-server-dev-${PG_MAJOR} \
libssl-dev \
libkrb5-dev
RUN mkdir -p /tmp/pgaudit && cd /tmp/pgaudit && curl -L https://github.com/pgaudit/pgaudit/archive/1.1.1.tar.gz | tar xz --strip 1
RUN make -C /tmp/pgaudit/ install USE_PGXS=1
COPY ./my-docker-entrypoint.sh /usr/local/bin/
COPY init.sql /docker-entrypoint-initdb.d/
ENTRYPOINT ["my-docker-entrypoint.sh"]
CMD ["postgres"]
FROM postgres:14.6
# 安装依赖并构建 pgaudit
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
ca-certificates \
git \
postgresql-server-dev-${PG_MAJOR} \
build-essential \
libssl-dev \
libkrb5-dev \
libxml2-dev \
zlib1g-dev \
clang-11 \
llvm-11 \
llvm-11-dev \
llvm-11-tools && \
git clone https://github.com/pgaudit/pgaudit.git -b REL_14_STABLE /tmp/pgaudit && \
make -C /tmp/pgaudit/ install USE_PGXS=1 && \
apt-get remove -y build-essential clang-11 llvm-11 llvm-11-dev llvm-11-tools git && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/*
# 复制脚本和 SQL 文件
COPY ./my-docker-entrypoint.sh /usr/local/bin/
COPY init.sql /docker-entrypoint-initdb.d/
# 设置入口点和默认命令
ENTRYPOINT ["my-docker-entrypoint.sh"]
CMD ["postgres"]
CREATE ROLE auditor;
SET pgaudit.role TO 'auditor';
ALTER SYSTEM SET pgaudit.role = 'auditor';
SELECT pg_reload_conf();
#!/bin/bash
IS_AUDIT_LOG_ENABLED=${IS_AUDIT_LOG_ENABLED:-false}
echo "IS_AUDIT_LOG_ENABLED=$IS_AUDIT_LOG_ENABLED"
PGAUDIT_LOG_ARGS=""
if [ ${IS_AUDIT_LOG_ENABLED} = "true" ] ; then
PGAUDIT_LOG=${PGAUDIT_LOG:-}
echo "PGAUDIT_LOG=$PGAUDIT_LOG"
PGAUDIT_LOG_LEVEL=${PGAUDIT_LOG_LEVEL:-LOG}
echo "PGAUDIT_LOG_LEVEL=$PGAUDIT_LOG_LEVEL"
PGAUDIT_LOG_CATALOG=${PGAUDIT_LOG_CATALOG:-on}
echo "PGAUDIT_LOG_CATALOG=$PGAUDIT_LOG_CATALOG"
PGAUDIT_LOG_PARAMETER=${PGAUDIT_LOG_PARAMETER:-on}
echo "PGAUDIT_LOG_PARAMETER=$PGAUDIT_LOG_PARAMETER"
PGAUDIT_LOG_ARGS="-c shared_preload_libraries=pgaudit -c log_destination=csvlog -c logging_collector=on -c pgaudit.log=$PGAUDIT_LOG -c pgaudit.log_level=$PGAUDIT_LOG_LEVEL -c pgaudit.log_catalog=$PGAUDIT_LOG_CATALOG -c pgaudit.log_parameter=$PGAUDIT_LOG_PARAMETER "
echo "PGAUDIT_LOG_ARGS=$PGAUDIT_LOG_ARGS"
fi
echo Running cmd: docker-entrypoint.sh "$@" $PGAUDIT_LOG_ARGS
exec docker-entrypoint.sh "$@" $PGAUDIT_LOG_ARGS
Content type
Image
Digest
sha256:7414f8199…
Size
351 MB
Last updated
7 months ago
docker pull muen/postgres