Skip to content

Commit c7d3add

Browse files
authored
chore: compile wrappers from source for OrioleDb Dockerfile (#797)
1 parent f76507a commit c7d3add

File tree

1 file changed

+70
-8
lines changed

1 file changed

+70
-8
lines changed

docker/orioledb/Dockerfile

Lines changed: 70 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ ARG pg_jsonschema_release=0.2.0
3030
ARG vault_release=0.2.8
3131
ARG groonga_release=12.0.8
3232
ARG pgroonga_release=2.4.0
33-
ARG wrappers_release=0.1.18
33+
ARG wrappers_release=0.1.19
3434
ARG hypopg_release=1.3.1
3535
ARG pg_repack_release=1.4.8
3636
ARG pgvector_release=0.4.0
@@ -570,7 +570,6 @@ WORKDIR /tmp/pg_graphql-${pg_graphql_release}
570570
RUN cargo pgrx package --no-default-features --features pg${postgresql_major}
571571

572572
# Create installable package
573-
RUN ls -al target/release
574573
RUN mkdir archive
575574
RUN cp target/release/pg_graphql-pg${postgresql_major}/usr/local/share/postgresql/extension/pg_graphql* archive
576575
RUN cp target/release/pg_graphql-pg${postgresql_major}/usr/local/lib/postgresql/pg_graphql.so archive
@@ -654,7 +653,6 @@ RUN cargo pgrx package --no-default-features --features pg${postgresql_major}
654653
RUN mkdir archive
655654
RUN cp target/release/pg_jsonschema-pg${postgresql_major}/usr/local/share/postgresql/extension/pg_jsonschema* archive
656655
RUN cp target/release/pg_jsonschema-pg${postgresql_major}/usr/local/lib/postgresql/pg_jsonschema.so archive
657-
RUN ls -al archive
658656

659657
# name of the package directory before packaging
660658
ENV package_dir=pg_jsonschema-v${pg_jsonschema_release}-pg${postgresql_major}-${TARGETARCH}-linux-gnu
@@ -765,11 +763,75 @@ COPY --from=pgroonga-source /tmp/*.deb /tmp/
765763
####################
766764
# 25-wrappers.yml
767765
####################
768-
FROM base as wrappers
769-
# Download package archive
766+
FROM rust-toolchain as wrappers-source
767+
# Download and extract
770768
ARG wrappers_release
771-
ADD "https://github.com/supabase/wrappers/releases/download/v${wrappers_release}/wrappers-v${wrappers_release}-pg${postgresql_major}-${TARGETARCH}-linux-gnu.deb" \
772-
/tmp/wrappers.deb
769+
ARG wrappers_release_checksum
770+
ADD --checksum=${wrappers_release_checksum} \
771+
"https://github.com/supabase/wrappers/archive/refs/tags/v${wrappers_release}.tar.gz" \
772+
/tmp/wrappers.tar.gz
773+
RUN tar -xvf /tmp/wrappers.tar.gz -C /tmp && \
774+
rm -rf /tmp/wrappers.tar.gz
775+
WORKDIR /tmp/wrappers-${wrappers_release}/wrappers
776+
RUN cargo pgrx package --no-default-features --features pg${postgresql_major},all_fdws
777+
778+
ENV extension_dir=target/release/wrappers-pg${postgresql_major}/usr/local/share/postgresql/extension
779+
780+
# copy schema file to version update sql files
781+
# Note: some version numbers may be skipped
782+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.6--${wrappers_release}.sql
783+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.7--${wrappers_release}.sql
784+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.8--${wrappers_release}.sql
785+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.9--${wrappers_release}.sql
786+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.10--${wrappers_release}.sql
787+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.11--${wrappers_release}.sql
788+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.14--${wrappers_release}.sql
789+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.15--${wrappers_release}.sql
790+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.16--${wrappers_release}.sql
791+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.17--${wrappers_release}.sql
792+
RUN cp ${extension_dir}/wrappers--${wrappers_release}.sql ${extension_dir}/wrappers--0.1.18--${wrappers_release}.sql
793+
794+
# Create installable package
795+
RUN mkdir archive
796+
RUN cp target/release/wrappers-pg${postgresql_major}/usr/local/share/postgresql/extension/wrappers* archive
797+
RUN cp target/release/wrappers-pg${postgresql_major}/usr/local/lib/postgresql/wrappers-${wrappers_release}.so archive
798+
799+
# name of the package directory before packaging
800+
ENV package_dir=wrappers-v${wrappers_release}-pg${postgresql_major}-${TARGETARCH}-linux-gnu
801+
802+
## Copy files into directory structure
803+
RUN mkdir -p ${package_dir}/usr/lib/postgresql/lib
804+
RUN mkdir -p ${package_dir}/var/lib/postgresql/extension
805+
RUN cp archive/*.so ${package_dir}/usr/lib/postgresql/lib
806+
RUN cp archive/*.control ${package_dir}/var/lib/postgresql/extension
807+
RUN cp archive/*.sql ${package_dir}/var/lib/postgresql/extension
808+
809+
# symlinks to Copy files into directory structure
810+
RUN mkdir -p ${package_dir}/usr/local/lib/postgresql
811+
WORKDIR ${package_dir}/usr/local/lib/postgresql
812+
RUN cp -s ../../../lib/postgresql/lib/*.so .
813+
WORKDIR ../../../../..
814+
815+
RUN mkdir -p ${package_dir}/usr/local/share/postgresql/extension
816+
WORKDIR ${package_dir}/usr/local/share/postgresql/extension
817+
818+
RUN cp -s ../../../../../var/lib/postgresql/extension/wrappers.control .
819+
RUN cp -s ../../../../../var/lib/postgresql/extension/wrappers*.sql .
820+
WORKDIR ../../../../../..
821+
822+
RUN mkdir -p ${package_dir}/DEBIAN
823+
RUN touch ${package_dir}/DEBIAN/control
824+
RUN echo 'Package: wrappers' >> ${package_dir}/DEBIAN/control
825+
RUN echo 'Version:' ${wrappers_release} >> ${package_dir}/DEBIAN/control
826+
RUN echo "Architecture: ${TARGETARCH}" >> ${package_dir}/DEBIAN/control
827+
RUN echo 'Maintainer: supabase' >> ${package_dir}/DEBIAN/control
828+
RUN echo 'Description: A PostgreSQL extension' >> ${package_dir}/DEBIAN/control
829+
830+
# Create deb package
831+
RUN chown -R root:root ${package_dir}
832+
RUN chmod -R 00755 ${package_dir}
833+
RUN dpkg-deb --build --root-owner-group ${package_dir}
834+
RUN cp ./*.deb /tmp/wrappers.deb
773835

774836
####################
775837
# 26-hypopg.yml
@@ -921,7 +983,7 @@ COPY --from=pg_stat_monitor-source /tmp/*.deb /tmp/
921983
COPY --from=pg_jsonschema-source /tmp/*.deb /tmp/
922984
COPY --from=vault-source /tmp/*.deb /tmp/
923985
COPY --from=pgroonga-source /tmp/*.deb /tmp/
924-
COPY --from=wrappers /tmp/*.deb /tmp/
986+
COPY --from=wrappers-source /tmp/*.deb /tmp/
925987
COPY --from=hypopg-source /tmp/*.deb /tmp/
926988
COPY --from=pg_repack-source /tmp/*.deb /tmp/
927989
COPY --from=pgvector-source /tmp/*.deb /tmp/

0 commit comments

Comments
 (0)