重启docker后,bitnami postgresql替换postgresql.conf

mi7gmzs6  于 2023-05-06  发布在  Docker
关注(0)|答案(1)|浏览(337)

我使用docker pull bitnami/postgresql:15.2.0并挂载了2个目录:

  • /bitnami/postgresql/data/la/la/la/data
  • /opt/bitnami/postgresql/conf/la/la/la/conf

/opt/bitnami/postgresql/confpostgresql.conf,我正在尝试更改
更改一些值并重新启动Docker后,文件将恢复默认值,即修改的文件替换为默认的conf文件。不管Docker是否在更改时运行-我都尝试了两种方法。
我找到了the instructions on the site,但也有很多关于它的问题。我不知道怎么用这个:
将自定义文件添加到工作目录的files/postgresql.conf中。
很明显我做错了什么...那么,大家有什么建议,如何改变postgresql.conf
谢谢大家!

cpjpxq1n

cpjpxq1n1#

为了简单起见,您可以只声明要覆盖的配置,然后将其挂载到opt/bitnami/postgresql/conf/conf.d/postgresql. conf。
例如我有这个配置文件

➜  code cat postgresql.conf
log_connections = yes
shared_buffers = 128MB
log_min_messages=DEBUG5
log_min_error_statement=DEBUG

➜  code pwd
/Users/hoaphan/dev/code

➜  code docker run  --rm --name postgresql -ePOSTGRESQL_PASSWORD=123456 -v  /Users/hoaphan/dev/code/postgresql.conf:/opt/bitnami/postgresql/conf/conf.d/postgresql.conf bitnami/postgresql:15.2.0

您可以在比较日志记录的装载量时验证这是否有效:

仅使用(未安装配置)

docker run  --rm --name postgresql -ePOSTGRESQL_PASSWORD=123456 bitnami/postgresql:15.2.0

不推荐。但如果出于某种原因,您仍然希望覆盖完整的原始配置,您可以:

  • 启动原始容器(例如:docker run --rm -it bitnami/postgresql:15.2.0 bash
  • 复制原始配置到你的主机上(这里我把整个目录)

docker cp postgresql:/opt/bitnami/postgresql/conf .
现在在编辑了conf/postgresql.con之后,我启动了另一个,覆盖了完整的配置:docker run --rm --name postgresql -ePOSTGRESQL_PASSWORD=123456 -v /Users/hoaphan/dev/code/conf/postgresql.conf:/opt/bitnami/postgresql/conf/postgresql.conf bitnami/postgresql:15.2.0
类似的结果,配置应该是有效的

另外,如果您通过binami helm chart发布gres:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install myrelease bitnami/postgresql

https://charts.bitnami.com/bitnami/postgresql-12.4.2.tgz的外观来看,我很确定https://docs.bitnami.com/kubernetes/infrastructure/postgresql/configuration/customize-config-file/是BS,但您可以使用values.yaml添加配置文件,内容如下:

primary:
  extendedConfiguration: |
    log_connections=yes
    log_min_messages=DEBUG5
    log_min_error_statement=DEBUG5

然后

helm install myrelease bitnami/postgresql --values values.yaml

我将创建这样的ConfigMap并将其挂载到运行容器中,作为/opt/bitnami/postgresql/conf/conf.d/override.conf,postgres将知道拾取并应用它。

apiVersion: v1
data:
  override.conf: |-
    log_connections=yes
    log_min_messages=DEBUG5
    log_min_error_statement=DEBUG5
kind: ConfigMap
metadata:
  annotations:
    meta.helm.sh/release-name: myrelease
    meta.helm.sh/release-namespace: default
  creationTimestamp: "2023-05-03T09:13:58Z"
  labels:
    app.kubernetes.io/component: primary
    app.kubernetes.io/instance: myrelease
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: postgresql
    helm.sh/chart: postgresql-12.4.2
  name: myrelease-postgresql-extended-configuration
  namespace: default

相关问题