
xbgmsharp/timescaledb-postgis本镜像基于官方 PostgreSQL 镜像构建,集成了多个实用扩展,旨在提供一站式数据库解决方案,满足时序数据处理、地理空间分析、定时任务调度及 Python 脚本支持等多样化需求。支持主流 PostgreSQL 版本,提供 Debian 和 Alpine 两种基础镜像变体,适配不同部署环境。
包含 pg_stat_statements(性能监控)、uuid-ossp(UUID 生成)、hstore(键值对存储)等常用 PostgreSQL 扩展,开箱即用。
amd64、arm64 等架构。{PG_VERSION}(如 16)、{PG_VERSION}-alpine(Alpine 变体)。| 标签格式 | 说明 |
|---|---|
latest | 最新稳定版(基于最新 PostgreSQL Debian 镜像) |
{PG_VERSION} | 指定 PostgreSQL 版本(如 16,Debian 基础) |
{PG_VERSION}-alpine | 指定 PostgreSQL 版本(Alpine 基础,轻量级) |
bashdocker run -d \ --name timescaledb-postgis \ -p 5432:5432 \ -e POSTGRES_PASSWORD=mysecretpassword \ -e POSTGRES_USER=myuser \ -e POSTGRES_DB=mydb \ -v pgdata:/var/lib/postgresql/data \ xbgmsharp/timescaledb-postgis:latest
yamlversion: '3.8' services: db: image: xbgmsharp/timescaledb-postgis:16 container_name: timescaledb-postgis ports: - "5432:5432" environment: POSTGRES_PASSWORD: mysecretpassword POSTGRES_USER: myuser POSTGRES_DB: mydb # 可选:启用 pg_stat_statements 扩展 POSTGRES_INITDB_ARGS: "--shared-preload-libraries=pg_stat_statements" # 可选:配置 pg_cron 默认数据库 PGCRON_DB: mydb volumes: - pgdata:/var/lib/postgresql/data # 可选:挂载初始化脚本(.sql, .sh)到容器 /docker-entrypoint-initdb.d/ # - ./init-scripts:/docker-entrypoint-initdb.d restart: unless-stopped volumes: pgdata:
继承自官方 PostgreSQL 镜像,支持以下核心变量:
| 变量名 | 说明 | 默认值 |
|---|---|---|
POSTGRES_DB | 初始数据库名称 | postgres |
POSTGRES_USER | 数据库管理员用户名 | postgres |
POSTGRES_PASSWORD | 管理员用户密码(必填) | - |
POSTGRES_INITDB_ARGS | 初始化数据库时的额外参数(如扩展加载) | - |
通过挂载卷 /var/lib/postgresql/data 持久化数据库数据,避免容器重启或删除导致数据丢失(示例中使用命名卷 pgdata)。
大部分扩展已预配置,可直接在数据库中使用:
sql-- 启用 TimescaleDB CREATE EXTENSION IF NOT EXISTS timescaledb; -- 启用 PostGIS CREATE EXTENSION IF NOT EXISTS postgis; -- 启用 pg_cron CREATE EXTENSION IF NOT EXISTS pg_cron; -- 启用 Python 支持(若需) CREATE EXTENSION IF NOT EXISTS plpython3u;
默认已加载 pg_cron 扩展,定时任务需指定数据库(通过 PGCRON_DB 环境变量或 cron.database_name 配置),示例任务:
sql-- 每天凌晨 2 点删除 30 天前的时序数据 SELECT cron.schedule( 'cleanup_old_data', '0 2 * * *', $$DELETE FROM sensor_data WHERE time < NOW() - INTERVAL '30 days'$$ );
支持 PostgreSQL 14+ 版本,具体标签可参考 Docker Hub 或项目 GitHub 仓库。
shared_buffers、work_mem),可通过挂载 postgresql.conf 配置文件实现。.sql 或 .sh)需确保权限正确(如 chmod 644),避免执行失败。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务