如何通过Docker Compose修改pgAdmin数据库备份上传限制至5000MB
解决方案
方法一:通过环境变量配置(推荐)
pgAdmin支持通过环境变量直接覆盖上传限制参数,只需在docker-compose.yaml的environment块中添加两个关键变量:
MAX_CONTENT_LENGTH:控制Flask框架允许的最大请求体大小,单位为字节(5000MB 换算为 5242880000 字节)PGADMIN_UPLOAD_FILE_SIZE_LIMIT:控制pgAdmin自身的文件上传大小限制,单位为MB
修改后的docker-compose.yaml片段:
pgadmin: build: ./pgadmin ... networks: ... labels: ... volumes: - type: bind source: ./volumes/data-pgadmin/servers.json target: /pgadmin4/servers.json environment: PGADMIN_DEFAULT_EMAIL: ... PGADMIN_DEFAULT_PASSWORD: ... MAX_CONTENT_LENGTH: 5242880000 PGADMIN_UPLOAD_FILE_SIZE_LIMIT: 5000 depends_on: - postgresql-postgis
该方法无需修改Dockerfile,直接在Compose配置中完成,适配自动化部署场景。
方法二:通过自定义配置文件挂载
若环境变量配置不生效(部分版本可能存在兼容问题),可通过挂载自定义配置文件覆盖默认限制:
- 在本地pgAdmin构建目录下创建
config_local.py文件,写入以下内容:
MAX_CONTENT_LENGTH = 5000 * 1024 * 1024 # 5000MB 转换为字节 UPLOAD_FILE_SIZE_LIMIT = 5000 # 单位:MB
- 修改
docker-compose.yaml的volumes块,添加配置文件挂载:
volumes: - type: bind source: ./volumes/data-pgadmin/servers.json target: /pgadmin4/servers.json - type: bind source: ./pgadmin/config_local.py target: /pgadmin4/config_local.py
- Dockerfile保持原内容即可,无需额外修改:
FROM dpage/pgadmin4:6.18 LABEL Author="My name and my surname"
验证配置
重启pgAdmin容器后,尝试上传大于50MB的数据库备份文件,确认不再被拦截即可。
内容的提问来源于stack exchange,提问作者Federico Galimberti
相关产品推荐
相关产品推荐

