1
votes

Remplacer une seule configuration dans un conteneur Postgres Docker

J'essaie de remplacer un seul élément dans la configuration Postgres de l'image officielle Docker Postgres . À savoir, je souhaite remplacer la propriété log_statement et la définir sur all .

Je l'ai essayé avec:

cat /var/lib/postgresql/data/postgresql.conf | grep log_statement

Après avoir entré le conteneur docker et exécuter:

docker run -d -e POSTGRES_PASSWORD=postgres postgres -c 'log_statement=all' 

est toujours la valeur par défaut qui est aucun.

mais sans succès.

Il y a quelques réponses / questions concernant la configuration de Postgres Docker mais ils suggèrent de remplacer le fichier complet postgresql.conf fichier.


0 commentaires

3 Réponses :


0
votes

Ma solution est de monter le fichier de configuration Postgres quelque part sur le serveur et de le modifier.


0 commentaires

0
votes

Je teste votre question sur mon ordinateur. Dans le postgresql.conf log_statement = "none" est commenté. Allez-y manuellement et décommentez-le et cela résoudra vos problèmes.

docker exec -it postgres bash

Dans le conteneur:

  • apt update
  • apt installer vim
  • vim /var/lib/postgresql/data/postgresql.conf
  • recherchez ce que vous recherchez et modifiez-le manuellement.
  • Arrêtez / démarrez le conteneur.

C'est ma solution.


2 commentaires

Cela nécessite une intervention manuelle à chaque redémarrage du conteneur.


Non, avec une seule fois suffit, assurez-vous de tester les solutions avant de commenter.



1
votes

À partir de la documentation :

Les options de ligne de commande remplacent tous les paramètres en conflit dans postgresql.conf. Notez que cela signifie que vous ne pourrez pas modifier la valeur à la volée en éditant postgresql.conf, donc même si la méthode de ligne de commande peut être pratique, elle peut vous coûter de la flexibilité plus tard.

Pour autant que je sache, cela ne change pas le postgresql.conf mais il exécute en fait la commande postgres avec les options souhaitées. C'est probablement pourquoi vous ne voyez pas la valeur définie sur all dans le fichier de configuration.

J'espère que cela aide.


0 commentaires