fix: postgres 18 compatibility + root docker-compose + ETL-tuned pg config#2
Merged
Merged
Conversation
…evcontainer Agent-Logs-Url: https://github.com/amgdy/github-copilot-insights-dashboard/sessions/d9639509-d281-4b01-8494-a404d17b3c74 Co-authored-by: amgdy <[email protected]>
…rs=0; add root docker-compose.yml Agent-Logs-Url: https://github.com/amgdy/github-copilot-insights-dashboard/sessions/5b4e16f0-7277-45b7-a813-e824ea7a36f1 Co-authored-by: amgdy <[email protected]>
Copilot created this pull request from a session on behalf of
amgdy
April 16, 2026 11:19
View session
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Postgres 18 compatibility fixes and a new root Compose setup to run the app + database locally, with Postgres settings tuned for the ETL/upsert workload.
Changes:
- Added a root
docker-compose.ymlto build/run the production Docker image alongside Postgres. - Updated Postgres 18 Compose settings (volume mount path +
max_wal_senders=0withwal_level=minimal) and applied ETL-oriented Postgres tuning in both compose files. - Simplified
.devcontainer/docker-compose.ymlby removingdeploy.resourcesand wiring services onto an explicit network.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
docker-compose.yml |
New end-to-end local Compose stack (app + Postgres 18) with ETL-tuned Postgres config and healthchecks. |
.devcontainer/docker-compose.yml |
Aligns devcontainer Postgres 18 config and healthcheck with the new tuning/compatibility requirements; adds explicit devnet network. |
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three related issues with the Docker/Compose setup: PG18 breaks on
wal_level=minimalwithoutmax_wal_senders=0, PG18 changed the expected volume mount path, and there was no compose file for running the production app end-to-end.PostgreSQL 18 breaking changes (both compose files)
max_wal_sendersdefault changed 0→10 in PG18 — settingwal_level=minimalnow requires explicitly adding-c max_wal_senders=0, otherwise PG crashes on startup:18/main) and expects the volume at/var/lib/postgresql, not/var/lib/postgresql/dataETL-optimised postgres config
Tuned for the bulk GitHub API → star-schema upsert workload (both compose files):
shared_bufferswork_memmaintenance_work_memeffective_cache_sizemax_wal_sizecheckpoint_timeoutdefault_statistics_targetANALYZEplans on skewed dimsshm_sizeshared_buffersNew root
docker-compose.ymlAdds a compose file for running the full production stack locally (previously only the devcontainer compose existed, which runs
sleep infinity):docker compose up --build # builds app/Dockerfile, starts PG, opens :3000ADMIN_PASSWORDdefaults tochangeme123— override via.envor environment variable before use.