Переопределение одной конфигурации в контейнере Postgres Docker - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь переопределить один элемент в конфигурации Postgres официального Docker Postgres изображения.А именно, я хочу переопределить свойство log_statement и установить его на all.

Попробовал его с помощью:

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

После того, как войдите в Docker-контейнер и выполните:

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

по-прежнему получает значение по умолчанию, равное none.

, но безуспешно.

Есть несколько ответов / вопросов относительно конфигурации Postgres Docker, но онипредложить заменить полный файл postgresql.conf.

Ответы [ 3 ]

1 голос
/ 23 мая 2019

Из документов :

Параметры командной строки переопределяют любые конфликтующие настройки в postgresql.conf. Обратите внимание, что это означает, что вы не сможете изменить значение «на лету», отредактировав postgresql.conf, поэтому, хотя метод командной строки может быть удобен, он позже может стоить вам гибкости.

Насколько я понимаю, это не меняет postgresql.conf, но фактически запускает команду postgres с нужными параметрами. Вероятно, поэтому вы не видите значение, установленное на all в файле конфигурации.

Надеюсь, это поможет.

0 голосов
/ 22 мая 2019

Я проверяю ваш вопрос на моем компьютере. В postgresql.conf log_statement="none" комментируется. Пойдите вручную и откомментируйте это, и это решит ваши проблемы.

docker exec -it postgres bash

В контейнер:

  • apt update
  • apt install vim
  • vim /var/lib/postgresql/data/postgresql.conf
  • найдите то, что вы ищете, и измените его вручную.
  • Остановить / запустить контейнер.

Это мое решение.

0 голосов
/ 22 мая 2019

Мое решение - смонтировать файл конфигурации Postgres где-нибудь на сервере и отредактировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...