From c73e9876dd5e71e129186c3b5b79a24a55f0ab81 Mon Sep 17 00:00:00 2001 From: Ian Stanton Date: Wed, 12 Jul 2023 18:34:45 -0400 Subject: [PATCH] Add postgresml extension (#200) Co-authored-by: Evan Stanton --- contrib/postgresml/Dockerfile | 43 +++++++++++++++++++++++++++++++++++ contrib/postgresml/Trunk.toml | 19 ++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 contrib/postgresml/Dockerfile create mode 100644 contrib/postgresml/Trunk.toml diff --git a/contrib/postgresml/Dockerfile b/contrib/postgresml/Dockerfile new file mode 100644 index 00000000..3cdaf871 --- /dev/null +++ b/contrib/postgresml/Dockerfile @@ -0,0 +1,43 @@ +ARG PG_VERSION=15 +FROM quay.io/coredb/pgrx-builder:pg${PG_VERSION}-pgrx0.9.7 +USER root +# quay.io/coredb/pgrx-builder:pg15-pgrx0.9.7 +# Extension build dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + libreadline-dev \ + zlib1g-dev \ + flex \ + bison \ + libxml2-dev \ + libxslt-dev \ + libssl-dev \ + libxml2-utils \ + xsltproc \ + ccache \ + python3-dev \ + clang \ + cmake \ + libclang-dev \ + libopenblas-dev \ + libpython3-dev \ + pkg-config + +# Install Rust +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + +# Set default Rust version +RUN /root/.cargo/bin/rustup default stable + +# Clone repository +RUN git clone https://github.com/postgresml/postgresml.git + +ARG RELEASE=v2.7.1 + +RUN cd postgresml && \ + git submodule update --init --recursive && \ + git fetch origin ${RELEASE} && \ + git checkout ${RELEASE} && \ + cd pgml-extension && \ + cargo pgrx init --pg15 /usr/bin/pg_config && \ + cargo pgrx package diff --git a/contrib/postgresml/Trunk.toml b/contrib/postgresml/Trunk.toml new file mode 100644 index 00000000..7b5ec856 --- /dev/null +++ b/contrib/postgresml/Trunk.toml @@ -0,0 +1,19 @@ +[extension] +name = "pgml" +version = "2.7.1" +repository = "https://github.com/postgresml/postgresml" +license = "MIT" +description = "PostgresML is a machine learning extension to PostgreSQL that enables you to perform training and inference on text and tabular data using SQL queries." +homepage = "https://postgresml.org/" +documentation = "https://postgresml.org/docs/guides/setup/quick_start_with_docker" +categories = ["machine_learning"] + +[build] +postgres_version = "15" +platform = "linux/amd64" +dockerfile = "Dockerfile" +install_command = """ + cd postgresml/pgml-extension + mv target/release/pgml-pg15/usr/lib/postgresql/15/lib/* /usr/lib/postgresql/15/lib + mv target/release/pgml-pg15/usr/share/postgresql/15/extension/* /usr/share/postgresql/15/extension +"""