Onnan indulunk, hogy van egy Postgres dev-környezetünk.
Példa problémák:
- Ha a konténerbeli
psqlklienst rendszeresen használjuk, feltűnhet, hogymorea beállított lapozó, amellyel nem lehet felfelé görgetni, és nekünk a szokásoslesskéne helyette. Ezt a$PAGERkörnyezeti változó segítségével könnyen megoldhatnánk, ám ha megpróbáljuk, kiderül, hogy a postgres Docker image nem tartalmazza alessprogramot, mert a végletekig lecsupaszították. - Ugyancsak a
psqlkliens használata során tűnhet fel, hogy fölösleges notice üzeneteket kapunkif [not] existsDDL-műveleteknél. Ezektől meg akarunk szabadulni.
Nézzük, mit tehetünk ilyen esetekben. Hozzuk létre a ./docker/postgres/Dockerfile fájlt:
FROM postgres:16
RUN apt-get update && apt-get install -y less
ENV PAGER="/usr/bin/less -S"
CMD ["-c", "client_min_messages=warning"]
Majd módosítsuk a docker-compose.yml konfigfájlt úgy, hogy a repóból letöltött image helyett ezt használja (lásd image helyett a build paramétert).
services:
db:
container_name: postgres
build: ./docker/postgres
# Dockerfile CMD helyett így is lehetne argumentumokat átadni:
# command: ["-c", "client_min_messages=warning"]
environment:
# Dockerfile ENV helyett így is lehetne környezeti változót beállítani:
# PAGER: "/usr/bin/less -S"
# stb...
Ne feledjük, ha változtatunk a Dockerfile-on, újra kell építeni az image-et:
$ docker compose up -d --build