我正在尝试覆盖官方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
文件。
答案 0 :(得分:1)
来自docs:
命令行选项将覆盖postgresql.conf中的所有冲突设置。请注意,这意味着您将无法通过编辑postgresql.conf即时更改该值,因此尽管命令行方法可能很方便,但以后可能会增加灵活性。
据我了解,这不会更改postgresql.conf
,但实际上会运行带有所需选项的postgres
命令。这可能就是为什么在配置文件中看不到设置为all
的值的原因。
希望有帮助。
答案 1 :(得分:0)
我的解决方案是将Postgres配置文件挂载到服务器上的某个位置并对其进行编辑。
答案 2 :(得分:0)
我在我的电脑上测试了您的问题。
在postgresql.conf
中log_statement="none"
被注释。
手动进行分解,即可解决您的问题。
docker exec -it postgres bash
放入容器:
apt update
apt install vim
vim /var/lib/postgresql/data/postgresql.conf
那是我的解决方法。