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.
3 Réponses :
Ma solution est de monter le fichier de configuration Postgres quelque part sur le serveur et de le modifier.
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 C'est ma solution.
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.
À 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.