30 lines
1.1 KiB
Text
30 lines
1.1 KiB
Text
|
|
# Use the PostGIS image as the base
|
||
|
|
FROM pgvector/pgvector:0.8.0-pg16 as binary
|
||
|
|
FROM postgis/postgis:16-master
|
||
|
|
COPY --from=binary /pgvecto-rs-binary-release.deb /tmp/vectors.deb
|
||
|
|
RUN apt-get install -y /tmp/vectors.deb && rm -f /tmp/vectors.deb
|
||
|
|
|
||
|
|
# Install necessary packages
|
||
|
|
RUN apt-get update \
|
||
|
|
&& apt-get install -y --no-install-recommends \
|
||
|
|
build-essential \
|
||
|
|
libpq-dev \
|
||
|
|
wget \
|
||
|
|
git \
|
||
|
|
postgresql-server-dev-16 \
|
||
|
|
postgresql-16-pgvector \
|
||
|
|
# Clean up to reduce layer size
|
||
|
|
&& rm -rf /var/lib/apt/lists/* \
|
||
|
|
&& cd /tmp \
|
||
|
|
&& git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git \
|
||
|
|
&& cd pgvector \
|
||
|
|
&& make \
|
||
|
|
&& make install \
|
||
|
|
# Clean up unnecessary files
|
||
|
|
&& cd - \
|
||
|
|
&& apt-get purge -y --auto-remove build-essential postgresql-server-dev-16 libpq-dev wget git \
|
||
|
|
&& rm -rf /tmp/pgvector
|
||
|
|
|
||
|
|
# Copy initialization scripts
|
||
|
|
#COPY ./docker-entrypoint-initdb.d/ /docker-entrypoint-initdb.d/
|
||
|
|
CMD ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", "search_path=\"$user\", public, vectors", "-c", "logging_collector=on"]
|