Skip to content

adding built-in support for ParadeDB's pg_search and VectorChord (vchord) extensions#51

Merged
mfa777 merged 18 commits intomasterfrom
develop
Mar 12, 2026
Merged

adding built-in support for ParadeDB's pg_search and VectorChord (vchord) extensions#51
mfa777 merged 18 commits intomasterfrom
develop

Conversation

@mfa777
Copy link
Copy Markdown
Owner

@mfa777 mfa777 commented Mar 12, 2026

This pull request enhances the PostgreSQL setup by updating dependencies, adding built-in support for ParadeDB's pg_search and VectorChord (vchord) extensions, and improving architecture compatibility for the wal-g backup tool. It also simplifies environment variable management and introduces health checks for better reliability.

Dependency and compatibility improvements:

  • Updated wal-g version to v3.0.8 and improved architecture detection for both Dockerfile.backup and Dockerfile.postgres-walg, allowing support for amd64 and aarch64 builds. [1] [2] [3]
  • Enhanced pgvector extension installation to dynamically detect PostgreSQL major version, improving compatibility with future versions.

Extension support enhancements:

  • Added installation steps for VectorChord (vchord) and ParadeDB pg_search extensions in Dockerfile.postgres-walg, with robust OS/architecture handling and fallback logic for ParadeDB package selection.
  • Introduced ENABLE_VCHORD environment variable and automated preload/extension setup for VectorChord in docker-entrypoint-walg.sh, including documentation updates in docs/env_vars.json, docs/ENV_VARS.md, and README.org. [1] [2] [3] [4]

Operational improvements:

  • Replaced inline environment variables in docker-compose.yml with a .env file for easier management, and added health checks for both postgres and backup services to improve reliability and monitoring. [1] [2] [3]

Testing and documentation:

  • Added integration test for pg_search installation in the PostgreSQL image and updated documentation to reflect new features and variables. [1] [2] [3]

These changes collectively make the PostgreSQL setup more robust, extensible, and easier to operate in modern environments.

super and others added 17 commits November 1, 2025 13:38
Co-authored-by: mfa777 <2765931+mfa777@users.noreply.github.com>
Co-authored-by: mfa777 <2765931+mfa777@users.noreply.github.com>
Co-authored-by: mfa777 <2765931+mfa777@users.noreply.github.com>
Co-authored-by: mfa777 <2765931+mfa777@users.noreply.github.com>
Co-authored-by: mfa777 <2765931+mfa777@users.noreply.github.com>
Co-authored-by: mfa777 <2765931+mfa777@users.noreply.github.com>
Update WAL-G asset selection and gate VectorChord setup
Co-authored-by: mfa777 <2765931+mfa777@users.noreply.github.com>
Co-authored-by: mfa777 <2765931+mfa777@users.noreply.github.com>
…pport

Add ParadeDB `pg_search` extension support to PostgreSQL image
Copilot AI review requested due to automatic review settings March 12, 2026 14:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project’s PostgreSQL + WAL-G Docker setup to add built-in support for ParadeDB’s pg_search and VectorChord (vchord) extensions, improve multi-architecture wal-g installation, and streamline runtime configuration via a .env file and container healthchecks.

Changes:

  • Update wal-g version and add architecture-aware download logic in both postgres and backup images.
  • Install pg_search and vchord into the postgres image and add an ENABLE_VCHORD entrypoint toggle to configure preload/extension creation.
  • Switch docker-compose service env management to .env and add healthchecks; update docs and offline tests accordingly.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
Dockerfile.postgres-walg Updates wal-g install and adds pg_search/vchord installation steps.
Dockerfile.backup Updates wal-g install logic for multi-arch backup container.
scripts/docker-entrypoint-walg.sh Adds ENABLE_VCHORD logic to configure preload/extension at runtime.
docker-compose.yml Replaces inline env vars with env_file: .env and adds healthchecks.
docs/env_vars.json Adds ENABLE_VCHORD to the env var catalog.
docs/ENV_VARS.md Documents ENABLE_VCHORD in the generated/synced env var table.
test/test-offline-e2e.sh Adds an offline integration check for pg_search install presence in the Dockerfile.
README.org Notes built-in pg_search support in the feature list.
postgresql.conf.template Minor formatting/line adjustments.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines 11 to +47
@@ -25,14 +30,21 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
# Download and install wal-g
RUN set -eux; \
echo "Downloading wal-g version ${WALG_VERSION}..."; \
wget --no-check-certificate -O /tmp/wal-g.tar.gz "https://github.com/wal-g/wal-g/releases/download/${WALG_VERSION}/wal-g-pg-ubuntu-20.04-amd64.tar.gz"; \
arch="$(dpkg --print-architecture)"; \
case "${arch}" in \
amd64) walg_arch="amd64" ;; \
arm64) walg_arch="aarch64" ;; \
*) echo "Unsupported architecture: ${arch}"; exit 1 ;; \
esac; \
walg_asset="wal-g-pg-${WALG_OS}-${walg_arch}.tar.gz"; \
wget -O /tmp/wal-g.tar.gz "https://github.com/wal-g/wal-g/releases/download/${WALG_VERSION}/${walg_asset}"; \
echo "Extracting wal-g..."; \
cd /tmp && tar -tzf wal-g.tar.gz; \
tar -xzf /tmp/wal-g.tar.gz -C /usr/local/bin; \
ls -la /usr/local/bin/wal-g* || echo "No wal-g found after extraction"; \
# Rename the extracted binary to just 'wal-g' \
if [ -f /usr/local/bin/wal-g-pg-ubuntu-20.04-amd64 ]; then \
mv /usr/local/bin/wal-g-pg-ubuntu-20.04-amd64 /usr/local/bin/wal-g; \
if [ -f "/usr/local/bin/wal-g-pg-${WALG_OS}-${walg_arch}" ]; then \
mv "/usr/local/bin/wal-g-pg-${WALG_OS}-${walg_arch}" /usr/local/bin/wal-g; \
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WALG_OS defaults to 20.04, which makes the wal-g asset/binary name wal-g-pg-20.04-… (see walg_asset and the subsequent rename check). wal-g release artifacts have historically included the distro prefix (e.g. wal-g-pg-ubuntu-20.04-…), so this is very likely to 404 and/or fail the rename step. Consider either defaulting WALG_OS to the full tag used by upstream assets (e.g. including ubuntu-) or renaming the arg to reflect the expected upstream naming.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 12, 2026

@mfa777 I've opened a new pull request, #52, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 12, 2026

@mfa777 I've opened a new pull request, #53, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@mfa777 mfa777 merged commit f807b7b into master Mar 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants