FROM arm64v8/ubuntu:24.10 RUN apt-get update && apt-get install -y gcc cpp gdb gettext curl autoconf automake RUN apt-get install -y python3 libpython3-dev perl libperl-dev tcl tcl-dev libtcl8.6 RUN apt-get install -y postgresql-all RUN apt-get install -y postgis \ postgresql-postgis \ postgresql-postgis-scripts RUN apt-get install -y pkg-config bison flex libicu-dev icu-devtools \ readline-common libreadline-dev libreadline-java rlwrap RUN apt-get install -y libpam-ssh libpam-modules libpam-modules-bin python3-pam python3-pampy RUN apt-get install -y llvm-19 llvm-dev lld libclang-dev clang clang-19 clang-tools ENV PGDATA=/var/lib/postgresql/data RUN install --verbose --directory --owner postgres --group postgres --mode 3777 /var/run/postgresql RUN install --verbose --directory --owner postgres --group postgres --mode 1777 "$PGDATA" VOLUME /var/lib/postgresql/data # postges build # ./configure --with-ssl=openssl --with-perl --with-python --with-tcl --with-llvm RUN mkdir -p /usr/local/src COPY postgresql-17.5.tar.gz /usr/local/src/postgresql-17.5.tar.gz RUN tar -xzf /usr/local/src/postgresql-17.5.tar.gz -C /usr/local/src WORKDIR /usr/local/src/postgresql-17.5 RUN ./configure --with-ssl=openssl --with-perl --with-python --with-tcl --with-llvm RUN make -j $(nproc) RUN make install RUN chown -R postgres:postgres /usr/local/pgsql RUN chown -R postgres:postgres /var/lib/postgresql/data ENV PATH $PATH:/usr/local/pgsql/bin # gosu - postgres RUN apt-get install -y gosu COPY docker-entrypoint.sh docker-ensure-initdb.sh /usr/local/bin/ RUN ln -sT docker-ensure-initdb.sh /usr/local/bin/docker-enforce-initdb.sh ENTRYPOINT ["docker-entrypoint.sh"] STOPSIGNAL SIGINT EXPOSE 5432 CMD ["postgres"]