COPY postgresql-18-synchdb_1.3-1.pgdg24.04+1_amd64.tar.gz /tmp/synchdb.tar.gz
RUN apt-get update && apt-get install -y \
openjdk-21-jdk \
libprotobuf-c1 \
postgresql-server-dev-18 \
build-essential \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /tmp/synchdb \
&& tar -xzf /tmp/synchdb.tar.gz -C /tmp/synchdb --strip-components=1 \
&& LIBDIR=$(pg_config --libdir) \
&& PKGLIBDIR=$(pg_config --pkglibdir) \
&& SHAREDIR=$(pg_config --sharedir)/extension \
&& mkdir -p $SHAREDIR \
&& cp -r /tmp/synchdb/usr/lib/postgresql/18/lib/* $LIBDIR \
&& cp -r /tmp/synchdb/usr/lib/postgresql/18/lib/* $PKGLIBDIR \
&& cp -r /tmp/synchdb/usr/share/postgresql/18/extension/* $SHAREDIR \
&& ldconfig
docker compose build
docker exec -it synchdb bash -c "psql -d postgres"
CREATE EXTENSION synchdb CASCADE;
ERROR: could not load library "/usr/lib/postgresql/18/lib/synchdb.so": /usr/lib/postgresql/18/lib/synchdb.so: undefined symbol: pqsignal
CONTEXT: SQL statement "CREATE OR REPLACE FUNCTION synchdb_start_engine_bgw(name) RETURNS int
AS '$libdir/synchdb', 'synchdb_start_engine_bgw'
LANGUAGE C IMMUTABLE STRICT"
extension script file "synchdb--1.0.sql", near line 4
nm -D $(pg_config --pkglibdir)/synchdb.so | grep pqsignal
U pqsignal
docker compose build
docker exec -it synchdb bash -c "psql -d postgres"
CREATE EXTENSION synchdb CASCADE;
nm -D $(pg_config --pkglibdir)/synchdb.so | grep pqsignal
U pqsignal