FROM postgres:${PG_VERSION}-alpine

# Install dependencies
RUN apk add --no-cache \
	linux-headers \
	openssl curl \
	perl perl-ipc-run perl-dev perl-app-cpanminus perl-dbi \
	make musl-dev gcc bison flex coreutils \
	zlib-dev libedit-dev \
	pkgconf icu-dev clang clang15 clang19 clang-analyzer;

# Environment
ENV LANG=C.UTF-8 PGDATA=/pg/data

# Make directories
RUN	mkdir -p ${PGDATA} && \
	mkdir -p /pg/testdir

COPY run_tests.sh /run.sh
RUN chmod 755 /run.sh

COPY . /pg/testdir
WORKDIR /pg/testdir

# Grant privileges
RUN	chown postgres:postgres ${PGDATA} && \
	chown -R postgres:postgres /pg/testdir && \
	chown postgres:postgres /usr/local/include/postgresql/server/ && \
	chmod a+rwx /usr/local/lib/postgresql && \
	chmod a+rwx /usr/local/share/postgresql/extension

USER postgres
ENTRYPOINT LEVEL=${LEVEL} /run.sh
