This repository was archived by the owner on Jun 13, 2026. It is now read-only.
Zrezygnuj z własnego obrazu — autotune w shellu, bind-mount na stock postgres#8
Merged
Conversation
…postgres BPP-strojony PostgreSQL uruchamiamy teraz na oficjalnym obrazie `postgres` przez bind-mount, bez budowania własnego obrazu. - autotune.py przepisany na czysty shell+awk (autotune.sh, bez Pythona); wynik identyczny bajt w bajt — zweryfikowane: wymuszony RAM, autodetekcja host/cgroup, tryb unsafe, override locków. autotune.py zostaje jako referencja. - docker-entrypoint-autotune.sh: Python-free, respektuje $PGDATA — działa podmontowany na stockowym postgres. - examples/docker-compose.yml: gotowy przykład (ICU pl-PL przez POSTGRES_INITDB_ARGS, bez systemowego locale pl_PL). - Usunięto Dockerfile, docker-bake.hcl, DOCKERHUB.md oraz zadania build/scan/push/scout/dockerhub w CI. Nowe ci.yml: self-test + pre-commit + smoke na postgres:16/17/18. - Wcześniej na tym branchu: usunięcie plpython3u; fix generowania locale pl_PL po apt-get upgrade (Debian trixie regenerował locale-archive i kasował locale, przez co initdb padał z "invalid locale settings"). - README/CLAUDE/CHANGELOG zaktualizowane; usunięto hook hadolint z pre-commit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Co i dlaczego
BPP-strojony PostgreSQL uruchamiamy teraz na oficjalnym obrazie
postgresprzez bind-mount — bez budowania własnego obrazu. Okazało się, że całą wartość (autotune + ICU pl-PL) da się dostarczyć dwoma podmontowanymi plikami + zmiennymi środowiskowymi.Zmiany
autotune.sh— portautotune.pyna czysty shell + awk (bez Pythona). Wynik identyczny bajt w bajt — zweryfikowane na: wymuszonym RAM (11 rozmiarów, też skrajne), autodetekcji host/cgroup (realnie w kontenerze, pod limitami--memory), trybie unsafe, override'ach locków.autotune.pyzostaje jako referencja parytetu. Self-test:sh autotune.sh --test.docker-entrypoint-autotune.sh— Python-free, wołaautotune.sh, respektuje$PGDATA(stock PG18+ domyślnie używa/var/lib/postgresql/<major>/docker). Działa podmontowany na stockowympostgres.examples/docker-compose.yml— gotowy przykład: stockpostgres:18+ bind-mount + ICU pl-PL przezPOSTGRES_INITDB_ARGS(bez systemowego localepl_PL).Dockerfile,docker-bake.hcl,DOCKERHUB.mdoraz zadania build/scan/push/scout/dockerhub w CI. Noweci.yml: self-test +pre-commit+ smoke napostgres:16/17/18(sprawdza, że autotune zadziałał i działa polskie sortowanie ICU).plpython3u; fix generowania localepl_PLpoapt-get upgrade(na Debian trixie upgrade regenerowałlocale-archivei kasował locale →initdbpadał z invalid locale settings).README.md/CLAUDE.md/CHANGELOG.md; usunięty hook hadolint zpre-commit.Świadomy trade-off
Znika systemowy locale
pl_PL(komunikaty / formatowanie liczb i dat po polsku). Polskie sortowanie zapewnia ICU niezależnie od locale OS, więc dla BPP to bez znaczenia.Weryfikacja
sh autotune.sh --testorazpython autotune.py --test→OKautotune.shvsautotune.py— identyczny na wszystkich ścieżkachpostgres:18: brak Pythona w obrazie,shared_buffersskalowane do limitu cgroup (498072kB @ 2 GiB),'ł' < 'm' COLLATE "pl-x-icu"=tpre-commit(ruff + shellcheck) zielony🤖 Generated with Claude Code