Sign inSign up

dimenziokft/postgres

By dimenziokft

•Updated 3 months ago

Image
0

57

dimenziokft/postgres repository overview

⁠PostgreSQL 18 Docker Image

Egy egyedi PostgreSQL 18 image magyar locale-lal és előre telepített extensionökkel.

Az image a hivatalos postgres:18.4-bookworm képre épül, és az alábbi kiegészítéseket tartalmazza:

  • hu_HU.UTF-8 locale
  • pgvector
  • pg_cron
  • pg_stat_statements
  • pg_stat_kcache

Az image indításkor automatikusan preloadolja a szükséges extensionöket, első inicializáláskor pedig létrehozza őket az adatbázisban.

⁠Támogatott architektúrák

  • linux/amd64
  • linux/arm64

⁠Build

Lokális build:

./make.sh local

Multi-arch build és push Docker Hubra:

./make.sh push

A push mód automatikusan létrehoz és használ egy külön docker-container buildx buildert, így nem a Docker Desktop alapértelmezett docker driverére támaszkodik.

Egyedi image név vagy platform lista megadásával:

IMAGE_NAME=myrepo/postgres:18 ./make.sh local
PLATFORMS=linux/amd64,linux/arm64 ./make.sh push
BUILDER_NAME=mybuilder ./make.sh push

⁠Használat

Egyszerű indítás:

docker run -d \
  --name postgres18 \
  -e POSTGRES_PASSWORD=secret \
  -p 5432:5432 \
  dimenziokft/postgres:18

Perzisztens adatkötettel:

docker run -d \
  --name postgres18 \
  -e POSTGRES_DB=app \
  -e POSTGRES_USER=app \
  -e POSTGRES_PASSWORD=secret \
  -v postgres17-data:/var/lib/postgresql/data \
  -p 5432:5432 \
  dimenziokft/postgres:18

⁠Előre engedélyezett beállítások

Az image a következő PostgreSQL beállításokat adja hozzá indításkor:

shared_preload_libraries=pg_cron,pg_stat_statements,pg_stat_kcache
cron.database_name=${POSTGRES_DB}

Ezért a pg_cron, pg_stat_statements és pg_stat_kcache külön kézi preload nélkül használható.

⁠Automatikusan létrehozott extensionök

Első inicializáláskor az image létrehozza az alábbi extensionöket:

  • vector
  • pg_cron
  • pg_stat_statements
  • pg_stat_kcache

Fontos: a docker-entrypoint-initdb.d scriptek csak akkor futnak le, amikor a PostgreSQL adatkönyvtár még üres. Ha már létező volume-ot használsz, az extensionök létrehozását kézzel kell pótolni.

⁠Gyors ellenőrzés

Futó konténer esetén ellenőrizheted az extensionöket:

docker exec -it postgres18 psql -U app -d app -c "SELECT extname FROM pg_extension ORDER BY extname;"

Példa a preloadolt libraryk ellenőrzésére:

docker exec -it postgres18 psql -U app -d app -c "SHOW shared_preload_libraries;"

⁠Környezeti változók

Az image a hivatalos PostgreSQL image szokásos változóit támogatja, például:

  • POSTGRES_DB
  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • PGDATA

A cron.database_name automatikusan a POSTGRES_DB értékét követi. Ha ez nincs megadva, az alapértelmezett adatbázis a postgres.

⁠Megjegyzés

A pgvector telepítve és létrehozva van, de nem része a shared_preload_libraries listának, mert ehhez az extensionhöz nincs szükség preloadra.

Tag summary

Content type

Image

Digest

sha256:9d4eb0357…

Size

157.5 MB

Last updated

3 months ago

docker pull dimenziokft/postgres:18