tecnativa/postgres-autoconfPostgreSQL Auto-Conf是一个在启动前自动配置PostgreSQL的镜像,旨在简化特定用户从特定网络访问PostgreSQL服务器的自动化配置流程。通过动态识别Docker网络环境,区分局域网(LAN,已连接的Docker网络)和广域网(WAN,其他网络)连接,自动生成适配的配置文件,解决手动配置网络访问控制的复杂性。
postgres.conf(运行时配置)和pg_hba.conf(主机认证配置)文件,无需手动编写。pg_hba.conf和postgres.conf配置流程,避免手动维护复杂配置文件的场景。容器启动时,入口点脚本会根据环境变量和网络环境动态生成配置文件,随后启动PostgreSQL服务。使用方式与标准PostgreSQL镜像类似,主要通过环境变量进行配置。
所有环境变量的默认值可在Dockerfile中查看。关键配置变量如下:
CERTSJSON对象,用于配置TLS证书和CA,支持以下键:
client.ca.cert.pem:PostgreSQL ssl_ca_file参数的PEM内容,启用客户端证书认证(最安全的远程认证方式),客户端需使用此CA签名的证书。server.cert.pem:PostgreSQL ssl_cert_file参数的PEM内容,服务器身份标识及加密连接证书。server.key.pem:PostgreSQL ssl_key_file参数的PEM内容,服务器私钥。注意:
server.cert.pem与server.key.pem需同时提供以启用TLS;使用client.ca.cert.pem时也需同时提供服务器证书和密钥。
安全建议:优先通过挂载文件(/etc/postgres/client.ca.cert.pem、/etc/postgres/server.cert.pem、/etc/postgres/server.key.pem)传递证书,而非环境变量。
CONF_EXTRA追加到生成的postgres.conf文件末尾的字符串,用于添加额外的PostgreSQL配置参数(如性能调优参数)。
LAN_AUTH_METHOD:LAN连接的认证方法(如trust、password、cert)。LAN_CONNECTION:允许的LAN连接类型。LAN_DATABASES:JSON数组,允许从LAN访问的数据库名称(如["db1", "db2"])。LAN_HBA_TPL:pg_hba.conf中LAN规则的模板,支持占位符(具体占位符见Dockerfile)。LAN_TLS:是否为LAN连接启用TLS(true/false)。LAN_USERS:JSON数组,允许从LAN访问的用户(如["user1", "user2"])。WAN_AUTH_METHOD:WAN连接的认证方法。WAN_CONNECTION:允许的WAN连接类型(若设为hostssl,需配合TLS证书生效)。WAN_DATABASES:JSON数组,允许从WAN访问的数据库名称。WAN_HBA_TPL:pg_hba.conf中WAN规则的模板,支持占位符(具体占位符见Dockerfile)。WAN_TLS:是否为WAN连接启用TLS(true/false)。WAN_USERS:JSON数组,允许从WAN访问的用户。client.ca.cert.pem时,不要使用cert认证方式。server.cert.pem和server.key.pem时,不要启用TLS。bashdocker run -d --name postgres-autoconf tecnativa/postgres-autoconf
允许LAN用户lan_user访问lan_db(trust认证),WAN用户wan_user通过password认证访问wan_db,并启用TLS:
bashdocker run -d \ --name postgres-autoconf \ -e LAN_USERS='["lan_user"]' \ -e LAN_DATABASES='["lan_db"]' \ -e LAN_AUTH_METHOD=trust \ -e WAN_USERS='["wan_user"]' \ -e WAN_DATABASES='["wan_db"]' \ -e WAN_AUTH_METHOD=password \ -e CERTS='{"server.cert.pem":"-----BEGIN CERTIFICATE...","server.key.pem":"-----BEGIN PRIVATE KEY..."}' \ tecnativa/postgres-autoconf
注:实际部署时需将
CERTS值替换为有效的PEM格式证书内容。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务