@@ -24,7 +24,7 @@ ARG rum_release=1.3.13
24
24
ARG pg_hashids_release=cd0e1b31d52b394a0df64079406a14a4f7387cd6
25
25
ARG libsodium_release=1.0.18
26
26
ARG pgsodium_release=3.1.6
27
- ARG pg_graphql_release=1.2 .2
27
+ ARG pg_graphql_release=1.4 .2
28
28
ARG pg_stat_monitor_release=1.1.1
29
29
ARG pg_jsonschema_release=0.1.4
30
30
ARG vault_release=0.2.8
@@ -74,6 +74,17 @@ ENV PATH=/usr/lib/ccache:$PATH
74
74
# Used to update ccache
75
75
ARG CACHE_EPOCH
76
76
77
+ FROM builder as rust-toolchain
78
+ ENV PATH=/root/.cargo/bin:$PATH
79
+ RUN apt-get update && apt-get install -y --no-install-recommends curl pkg-config && \
80
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal --default-toolchain nightly && \
81
+ rustup --version && \
82
+ rustc --version && \
83
+ cargo --version
84
+
85
+ RUN cargo install cargo-pgrx --version 0.10.2 --locked
86
+ RUN cargo pgrx init --pg${postgresql_major} $(which pg_config)
87
+
77
88
# ###################
78
89
# 01-postgis.yml
79
90
# ###################
@@ -546,11 +557,59 @@ RUN checkinstall -D --install=no --fstrans=no --backup=no --pakdir=/tmp --requir
546
557
# ###################
547
558
# 19-pg_graphql.yml
548
559
# ###################
549
- FROM base as pg_graphql
550
- # Download package archive
560
+ FROM rust-toolchain as pg_graphql-source
561
+ # Download and extract
551
562
ARG pg_graphql_release
552
- ADD "https://github.com/supabase/pg_graphql/releases/download/v${pg_graphql_release}/pg_graphql-v${pg_graphql_release}-pg${postgresql_major}-${TARGETARCH}-linux-gnu.deb" \
553
- /tmp/pg_graphql.deb
563
+ ARG pg_graphql_release_checksum
564
+ ADD --checksum=${pg_graphql_release_checksum} \
565
+ "https://github.com/supabase/pg_graphql/archive/refs/tags/v${pg_graphql_release}.tar.gz" \
566
+ /tmp/pg_graphql.tar.gz
567
+ RUN tar -xvf /tmp/pg_graphql.tar.gz -C /tmp && \
568
+ rm -rf /tmp/pg_graphql.tar.gz
569
+ WORKDIR /tmp/pg_graphql-${pg_graphql_release}
570
+ RUN cargo pgrx package --no-default-features --features pg${postgresql_major}
571
+
572
+ # Create installable package
573
+ RUN ls -al target/release
574
+ RUN mkdir archive
575
+ RUN cp target/release/pg_graphql-pg${postgresql_major}/usr/local/share/postgresql/extension/pg_graphql* archive
576
+ RUN cp target/release/pg_graphql-pg${postgresql_major}/usr/local/lib/postgresql/pg_graphql.so archive
577
+ # name of the package directory before packaging
578
+ ENV package_dir=pg_graphql-v${pg_graphql_release}-pg${postgresql_major}-${TARGETARCH}-linux-gnu
579
+
580
+ # # Copy files into directory structure
581
+ RUN mkdir -p ${package_dir}/usr/lib/postgresql/lib
582
+ RUN mkdir -p ${package_dir}/var/lib/postgresql/extension
583
+ RUN cp archive/*.so ${package_dir}/usr/lib/postgresql/lib
584
+ RUN cp archive/*.control ${package_dir}/var/lib/postgresql/extension
585
+ RUN cp archive/*.sql ${package_dir}/var/lib/postgresql/extension
586
+
587
+ # symlinks to Copy files into directory structure
588
+ RUN mkdir -p ${package_dir}/usr/lib/postgresql/${postgresql_major}/lib
589
+ WORKDIR ${package_dir}/usr/lib/postgresql/${postgresql_major}/lib
590
+ RUN cp -s ../../lib/*.so .
591
+ WORKDIR ../../../../../..
592
+
593
+ RUN mkdir -p ${package_dir}/usr/share/postgresql/${postgresql_major}/extension
594
+ WORKDIR ${package_dir}/usr/share/postgresql/${postgresql_major}/extension
595
+
596
+ RUN cp -s ../../../../../var/lib/postgresql/extension/pg_graphql.control .
597
+ RUN cp -s ../../../../../var/lib/postgresql/extension/pg_graphql*.sql .
598
+ WORKDIR ../../../../../..
599
+
600
+ RUN mkdir -p ${package_dir}/DEBIAN
601
+ RUN touch ${package_dir}/DEBIAN/control
602
+ RUN echo 'Package: pg-graphql' >> ${package_dir}/DEBIAN/control
603
+ RUN echo 'Version:' ${pg_graphql_release} >> ${package_dir}/DEBIAN/control
604
+ RUN echo "Architecture: ${TARGETARCH}" >> ${package_dir}/DEBIAN/control
605
+ RUN echo 'Maintainer: supabase' >> ${package_dir}/DEBIAN/control
606
+ RUN echo 'Description: A PostgreSQL extension' >> ${package_dir}/DEBIAN/control
607
+
608
+ # Create deb package
609
+ RUN chown -R root:root ${package_dir}
610
+ RUN chmod -R 00755 ${package_dir}
611
+ RUN dpkg-deb --build --root-owner-group ${package_dir}
612
+ RUN cp ./*.deb /tmp/pg_graphql.deb
554
613
555
614
# ###################
556
615
# 20-pg_stat_monitor.yml
@@ -808,7 +867,7 @@ COPY --from=pg_net-source /tmp/*.deb /tmp/
808
867
COPY --from=rum-source /tmp/*.deb /tmp/
809
868
COPY --from=pgsodium-source /tmp/*.deb /tmp/
810
869
COPY --from=pg_hashids-source /tmp/*.deb /tmp/
811
- COPY --from=pg_graphql /tmp/*.deb /tmp/
870
+ COPY --from=pg_graphql-source /tmp/*.deb /tmp/
812
871
COPY --from=pg_stat_monitor-source /tmp/*.deb /tmp/
813
872
COPY --from=pg_jsonschema /tmp/*.deb /tmp/
814
873
COPY --from=vault-source /tmp/*.deb /tmp/
0 commit comments