轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
pgxn/pgxn-tools
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

pgxn-tools Docker 镜像下载 - 轩辕镜像

pgxn-tools 镜像详细信息和使用指南

pgxn-tools 镜像标签列表和版本信息

pgxn-tools 镜像拉取命令和加速下载

pgxn-tools 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

pgxn-tools
pgxn/pgxn-tools

pgxn-tools 镜像详细信息

pgxn-tools 镜像标签列表

pgxn-tools 镜像使用说明

pgxn-tools 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

用于测试不同版本PostgreSQL扩展并发布到PGXN的Docker镜像,包含多种构建、测试和发布工具,支持PGXS和pgrx扩展类型,基于Debian Bookworm Slim,支持PostgreSQL 8.2及以上版本。
2 收藏0 次下载activepgxn镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

pgxn-tools 镜像详细说明

pgxn-tools 使用指南

pgxn-tools 配置说明

pgxn-tools 官方文档

pgxn/pgxn-tools Docker镜像文档

镜像概述

pgxn/pgxn-tools是一个用于自动化测试PostgreSQL扩展(针对多版本PostgreSQL)并发布到PGXN(PostgreSQL扩展网络)的Docker镜像。基于Debian Bookworm Slim构建,使用PostgreSQL Apt仓库安装PostgreSQL,支持8.2及以上版本(包括最新预发布版)。

核心功能与工具

镜像包含以下实用工具:

  • pgxn: PGXN命令行客户端,用于从PGXN安装扩展依赖
  • pg_prove: 运行pgTAP测试的工具
  • pg-start: 安装指定主版本的PostgreSQL并启动集群
  • pg-build-test: 构建并测试当前目录中的PGXS扩展
  • pgrx-build-test: 构建并测试当前目录中的pgrx扩展
  • pgxn-bundle: 验证PGXN META.json文件并打包发布版本
  • pgxn-release: 将扩展发布到PGXN

使用场景

  • 自动化测试PostgreSQL扩展在不同版本PostgreSQL上的兼容性
  • 构建和验证PGXS或pgrx类型的PostgreSQL扩展
  • 通过CI/CD流程(如GitHub Actions)自动发布扩展到PGXN
  • 本地开发环境中快速测试扩展在多版本PostgreSQL上的表现

使用方法

基本容器运行

使用Docker CLI运行pgxn-tools容器,基本命令格式如下:

docker run -it --rm -w /repo --volume "$PWD:/repo" pgxn/pgxn-tools \
    sh -c 'pg-start 16 && pg-build-test'

此示例将当前目录挂载到容器的/repo目录,启动PostgreSQL 16,然后构建并测试该目录中的扩展。

非特权用户运行

注意:GitHub工作流容器作业必须以root运行,本节的非特权用户选项在此场景下不适用。

默认容器以root用户运行。如需以非特权用户运行,可通过AS_USER环境变量创建具有sudo权限的用户:

docker run -it --rm -w /repo -e AS_USER=worker \
    --volume "$PWD:/repo" pgxn/pgxn-tools \
    sh -c 'sudo pg-start 14 && pg-build-test'

创建的用户默认UID为1001,可通过LOCAL_UID指定本地UID以访问挂载卷中的文件:

docker run -it --rm -w /repo -e AS_USER=worker -e LOCAL_UID=$(id -u) \
    --volume "$PWD:/repo" pgxn/pgxn-tools \
    sh -c 'sudo pg-start 14 && pg-build-test'

容器中已包含nobody用户和pg-start创建的postgres用户,两者均具有无密码sudo权限。

GitHub工作流示例

测试PGXS扩展

以下工作流在每次推送和拉取请求时,针对多个PostgreSQL版本测试PGXS扩展:

name: CI
on: [push, pull_request]
jobs:
  test:
    strategy:
      matrix:
        pg: [17, 16, 15, 14, 13, 12, 11, 10, 9.6, 9.5, 9.4, 9.3, 9.2, 9.1, 9.0, 8.4, 8.3, 8.2]
    name: 🐘 PostgreSQL ${{ matrix.pg }}
    runs-on: ubuntu-latest
    container: pgxn/pgxn-tools
    steps:
      - name: 启动PostgreSQL ${{ matrix.pg }}
        run: pg-start ${{ matrix.pg }}
      - name: 检出代码
        uses: actions/checkout@v4
      - name: 在PostgreSQL ${{ matrix.pg }}上测试
        run: pg-build-test

测试pgrx扩展

以下工作流测试pgrx扩展,使用缓存加速依赖安装:

name: CI
on: [push, pull_request]
jobs:
  test:
    strategy:
      matrix:
        pg: [16, 15, 14, 13, 12, 11]
    name: 🐘 PostgreSQL ${{ matrix.pg }}
    runs-on: ubuntu-latest
    container: pgxn/pgxn-tools
    steps:
      - name: 启动PostgreSQL ${{ matrix.pg }}
        run: pg-start ${{ matrix.pg }}
      - name: 检出代码
        uses: actions/checkout@v4
      - name: 设置Rust缓存
        uses: Swatinem/rust-cache@v2
      - name: 在PostgreSQL ${{ matrix.pg }}上测试
        run: pgrx-build-test

发布到PGXN和GitHub

以下工作流在推送匹配v*标签时,自动发布到PGXN和GitHub:

name: Release
on:
  push:
    tags: ['v[0-9]+.[0-9]+.[0-9]+']
jobs:
  release:
    name: 发布到GitHub和PGXN
    runs-on: ubuntu-latest
    container: pgxn/pgxn-tools
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
    - name: 检出代码
      uses: actions/checkout@v4
    - name: 打包发布版本
      id: bundle
      run: pgxn-bundle
    - name: 发布到PGXN
      env:
        PGXN_USERNAME: ${{ secrets.PGXN_USERNAME }}
        PGXN_PASSWORD: ${{ secrets.PGXN_PASSWORD }}
      run: pgxn-release
    - name: 创建GitHub发布
      id: release
      uses: actions/create-release@v1
      with:
        tag_name: ${{ github.ref }}
        release_name: Release ${{ github.ref }}
        body: |
          本次发布变更
          - 变更1
          - 变更2
    - name: 上传发布资产
      uses: actions/upload-release-asset@v1
      with:
        upload_url: ${{ steps.release.outputs.upload_url }}
        asset_path: ./${{ steps.bundle.outputs.bundle }}
        asset_name: ${{ steps.bundle.outputs.bundle }}
        asset_content_type: application/zip

非特权用户工作流

GitHub工作流需要root用户操作工作区,可通过以下方式以非特权用户执行命令:

container: pgxn/pgxn-tools
steps:
  - uses: actions/checkout@v4
  - run: pg-start 16
  - run: chown -R postgres:postgres .
  - run: gosu postgres pg-build-test

或直接运行Docker镜像并指定用户:

steps:
  - uses: actions/checkout@v4
  - run: >-
      docker run -w /repo --rm --volume "$(pwd):/repo"
             -e AS_USER=pgxn_worker -e LOCAL_UID=$(id -u)
             pgxn/pgxn-tools sh -c 'pg-start && pg-build-test'

工具详情

pg-start

安装并启动指定版本的PostgreSQL集群:

pg-start 12                  # 安装并启动PostgreSQL 12
pg-start 11 libsodium-dev    # 安装PostgreSQL 11及额外依赖
  • 支持版本:8.2及以上,包括预发布版
  • 环境变量:
    • PGPORT: 指定端口(默认5432)
    • LANG: 设置集群区域(默认C.UTF-8)
    • NO_CLUSTER: 仅安装不启动集群(需手动使用pg_createcluster)

示例:修改配置文件并重启集群

# 获取配置文件路径
CONFIG_FILE=$(psql --no-psqlrc -U postgres -Atqc 'SHOW config_file')
# 添加配置
echo "shared_preload_libraries = '$libdir/plperl'" >> $CONFIG_FILE
# 重启集群
pg_ctlcluster 12 test restart

pg-build-test

构建并测试当前目录的PGXS扩展:

pg-build-test  # 构建并运行测试
  • 等效于执行make && make install && make installcheck
  • 环境变量PROFILE可自定义构建参数(默认--Werror):
    export PROFILE=--Wall && pg-build-test
    

pgrx-build-test

构建并测试当前目录的pgrx扩展(需Cargo.toml中指定pgrx版本≥0.11.4):

pgrx-build-test  # 构建并运行测试
  • 自动安装指定版本的cargo-pgrx
  • 支持运行make installcheck(如Makefile定义该目标)

pgxn-bundle

验证META.json并打包发布版本:

pgxn-bundle  # 从META.json读取名称和版本并打包
# 或手动指定
PGXN_DIST_NAME=widget PGXN_DIST_VERSION=1.0.0 pgxn-bundle
  • 优先使用Git仓库打包,无Git时使用zip
  • 环境变量:
    • GIT_ARCHIVE_CMD=archive-all: 包含Git子模块
    • GIT_BUNDLE_OPTS: 传递给git archive的参数
    • ZIP_BUNDLE_OPTS: 传递给zip的参数

pgxn-release

发布打包文件到PGXN:

export PGXN_USERNAME=用户名
export PGXN_PASSWORD=密码
pgxn-release  # 发布当前打包文件
pgxn-release widget-1.0.0.zip  # 发布指定文件
  • 依赖环境变量PGXN_USERNAME和PGXN_PASSWORD
  • 未指定文件时,自动从META.json或环境变量获取名称和版本

pgxn

PGXN命令行客户端,用于安装扩展依赖:

pgxn install semver  # 安装semver扩展

pg_prove

运行pgTAP测试:

pg_prove -r --ext .sql test/  # 递归运行test目录下的.sql测试文件

已安装组件

Debian包

  • 构建工具:build-essential, clang, llvm, cmake
  • PostgreSQL工具:pgxnclient, libtap-parser-sourcehandler-pgtap-perl
  • 系统工具:sudo, gosu, ca-certificates, gnupg2, zip, unzip, curl, git
  • 开发库:libicu-dev, libipc-run-perl, libtest-simple-perl, libxml2

Rust组件

  • rustup (minimal配置)
  • rustfmt, clippy

版权信息

  • 作者:David E. Wheeler
  • 版权:2020-2024 The PGXN Maintainers
  • 许可:PostgreSQL License(详见LICENSE)
查看更多 pgxn-tools 相关镜像 →
rancher/rke-tools logo
rancher/rke-tools
by Rancher by SUSE
认证
暂无描述
14100M+ pulls
上次更新:3 个月前
temporalio/admin-tools logo
temporalio/admin-tools
by Temporal Technologies Inc
认证
以工作流即代码方式构建和运行弹性应用的Docker镜像
810M+ pulls
上次更新:23 天前
rancher/k3d-tools logo
rancher/k3d-tools
by Rancher by SUSE
认证
支持k3d(https://k3d.io)的辅助容器镜像
45M+ pulls
上次更新:3 年前
demisto/py3-tools logo
demisto/py3-tools
by Demisto, A Palo Alto Networks Company
认证
暂无描述
1M+ pulls
上次更新:6 天前
octopusdeploy/worker-tools logo
octopusdeploy/worker-tools
by Octopus Deploy
认证
包含Octopus步骤常用工具的Docker镜像,是设置工作器执行容器的推荐选择,支持在工作器或Octopus Server上运行部署步骤时选择容器作为执行环境。
410M+ pulls
上次更新:7 个月前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像免费版与专业版有分别支持哪些镜像?

免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.