专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
voxbox

voxpupuli/voxbox

voxpupuli

Vox Pupuli Test Box是用于测试voxpupuli OpenVox/Puppet模块的Docker镜像,预装voxpupuli-test、-acceptance、-release等Ruby gems及curl、git、jq等工具,提供一致的测试、验证和发布环境,支持CI/CD集成。

下载次数: 0状态:社区镜像维护者:voxpupuli仓库类型:镜像最近更新:8 天前
轩辕镜像,快一点,稳很多。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,快一点,稳很多。点击查看

Vox Pupuli Test Box

https://github.com/voxpupuli/container-voxbox/actions/workflows/ci.yaml/badge.svg](https://github.com/voxpupuli/container-voxbox/actions/workflows/ci.yaml) ![Sponsored by betadots GmbH]([***]


  • Vox Pupuli Test Box
    • 概述
    • 包含的Ruby gems
    • 额外包含的工具
    • 版本信息
    • 使用方法
      • Rake
        • release任务
        • spec任务
        • 可用的rake任务
      • Onceover
      • Shell
      • Puppet
        • puppet-strings
      • puppet-ghostbuster
      • YAMLlint
      • JQ
      • cURL
      • RuboCop
      • Librarian
      • eyaml
    • EasyVoxBox (evb)
    • GitLab
      • GitLab CI配置示例
      • GitLab代码质量报告
      • GitLab单元测试报告
    • 版本 schema
    • 如何发布?
    • 如何贡献?

概述

本容器用于测试voxpupuli的OpenVox/Puppet模块。它已预装voxpupuli-test、-acceptance、-release gems及其所有依赖。

重要信息

  • ⚠ 2025年2月28日,OpenVox/Puppet 7进入生命周期结束阶段。因此,将不再构建新的VoxBox:7版本。现有版本将保留供继续使用。

包含的Ruby gems

详见:Gemfile

  • hiera-eyaml
  • librarian
  • modulesync
  • onceover
  • openfact
  • openvox
  • puppet-ghostbuster
  • r10k
  • rubocop
  • voxpupuli-acceptance
  • voxpupuli-release
  • voxpupuli-test

额外包含的工具

  • curl
  • git
  • gpg
  • jq
  • ssh-client
  • yamllint

版本信息

有关容器中包含的工具版本,请参见:

build_versions.yaml

使用方法

Rake

进入OpenVox/Puppet模块的根目录并运行容器。确保将当前目录挂载到容器的/repo路径下。默认入口点为rake。无参数时将运行rake -f /Rakefile -T。可指定rake任务作为参数。详见可用的rake任务。

为保证一致的rake环境,我们使用-f /Rakefile显式指定Rakefile,而非依赖仓库中可能过时的版本。所使用的Rakefile可查看此处。

shell
cd puppet-example
podman run -it --rm -v $PWD:/repo:Z ghcr.io/voxpupuli/voxbox:8                   # 运行 rake -T
podman run -it --rm -v $PWD:/repo:Z ghcr.io/voxpupuli/voxbox:8 spec              # 运行 rake spec

release任务

使用release rake任务:

shell
podman run -it --rm \
   -v $PWD:/repo:Z \
   -v ~/.gitconfig:/etc/gitconfig:ro \
   -v ~/.ssh:/root/.ssh \
   -v ${SSH_AUTH_SOCK}:${SSH_AUTH_SOCK} \
   -e SSH_AUTH_SOCK="${SSH_AUTH_SOCK}" \
   ghcr.io/voxpupuli/voxbox:8 release

spec任务

仅运行特定的spec:

shell
podman run -it --rm -e "SPEC=spec/classes/example_spec.rb" -v $PWD:/repo:Z ghcr.io/voxpupuli/voxbox:8 spec

可用的rake任务

shell
rake beaker                                                                     # 运行RSpec代码示例
rake build                                                                      # 构建Puppet模块包
rake build:pdk                                                                  # 使用PDK构建Puppet模块
rake check                                                                      # 运行静态发布前检查
rake check:dot_underscore                                                       # 若目录中存在._文件则失败
rake check:git_ignore                                                           # 若目录包含.gitignore中指定的文件则失败
rake check:symlinks                                                             # 若目录中存在符号链接则失败
rake check:test_file                                                            # 若tests文件夹中存在.pp文件则失败
rake check:trailing_whitespace                                                  # 检查尾随空白字符
rake check_changelog                                                            # 检查变更日志
rake clean                                                                      # 清理已构建的模块包
rake compute_dev_version                                                        # 打印模块的开发版本
rake generate_fixtures                                                          # 基于Puppetfile生成-fixtures.yml
rake generate_vendor_cache                                                      # 获取通常捆绑在AIO代理中的核心模块
rake help                                                                       # 显示可用的rake任务列表
rake lint                                                                       # 运行puppet-lint
rake lint_fix                                                                   # 运行puppet-lint并修复问题
rake metadata_lint                                                              # 运行metadata-json-lint
rake module:build                                                               # 使用puppet-modulebuilder构建模块
rake module:bump                                                                # 将模块版本 bump 到下一个补丁版本
rake module:bump:full                                                           # 将模块版本 bump 到下一个完整版本
rake module:bump:major                                                          # 将模块版本 bump 到下一个主版本
rake module:bump:minor                                                          # 将模块版本 bump 到下一个次版本
rake module:bump:patch                                                          # 将模块版本 bump 到下一个补丁版本
rake module:bump_commit                                                         # Bump版本并提交到git
rake module:bump_commit:full                                                    # Bump到下一个完整版本并提交到git
rake module:bump_commit:major                                                   # Bump到下一个主版本并提交到git
rake module:bump_commit:minor                                                   # Bump到下一个次版本并提交到git
rake module:bump_commit:patch                                                   # Bump到下一个补丁版本并提交到git
rake module:bump_to_version[new_version]                                        # 将模块 bump 到指定版本号
rake module:clean                                                               # 再次运行清理
rake module:dependency[module_name,version]                                     # 设置特定模块依赖版本
rake module:push                                                                # 将模块推送到Puppet Forge
rake module:release                                                             # 发布Puppet模块,执行清理、构建、bump_commit、标记、推送和git推送
rake module:tag                                                                 # 使用当前模块版本创建git标签
rake module:version                                                             # 获取当前模块版本
rake module:version:next                                                        # 获取下一个模块版本
rake module:version:next:major                                                  # 获取下一个主版本
rake module:version:next:minor                                                  # 获取下一个次版本
rake module:version:next:patch                                                  # 获取下一个补丁版本
rake parallel_spec                                                              # 并行运行spec测试,成功后清理测试夹具目录
rake parallel_spec_standalone                                                   # 独立并行spec测试
rake r10k:dependencies                                                          # 打印过时的Forge模块
rake r10k:deprecation                                                           # 验证没有Forge模块已被弃用
rake r10k:duplicates                                                            # 检查Puppetfile中的重复项
rake r10k:install                                                               # 安装Puppetfile中指定的模块
rake r10k:print_git_conversion                                                  # 转换并打印Forge模块为git格式
rake r10k:solve_dependencies[allow_major_bump]                                  # 查找缺失或过时的模块依赖
rake r10k:syntax                                                                # 语法检查Puppetfile
rake r10k:validate                                                              # 验证git URL和分支、引用或标签
rake release                                                                    # 通过GitHub Actions发布
rake release:prepare                                                            # 准备发布
rake release_checks                                                             # 在模块发布前运行所有必要检查
rake rubocop                                                                    # 运行RuboCop
rake rubocop:autocorrect                                                        # 自动纠正RuboCop违规(仅安全纠正)
rake rubocop:autocorrect_all                                                    # 自动纠正RuboCop违规(安全和不安全纠正)
rake spec                                                                       # 运行spec测试,成功后清理测试夹具目录
rake spec:simplecov                                                             # 使用Ruby simplecov代码覆盖率运行spec测试
rake spec_clean                                                                 # 清理测试夹具目录
rake spec_clean_symlinks                                                        # 清理所有测试夹具符号链接
rake spec_list_json                                                             # 以JSON文档列出spec测试
rake spec_prep                                                                  # 创建测试夹具目录
rake spec_standalone                                                            # 运行RSpec代码示例
rake strings:generate[patterns,debug,backtrace,markup,json,markdown,yard_args]  # 使用YARD生成Puppet文档
rake strings:generate:reference[patterns,debug,backtrace]                       # 生成Puppet参考文档
rake strings:gh_pages:update                                                    # 更新gh-pages分支上的文档并推送到GitHub
rake strings:validate:reference[patterns,debug,backtrace]                       # 验证参考文档是否最新
rake syntax                                                                     # 语法检查Puppet清单、模板和Hiera
rake syntax:hiera                                                               # 语法检查Hiera配置文件
rake syntax:manifests                                                           # 语法检查Puppet清单
rake syntax:templates                                                           # 语法检查Puppet模板
rake test                                                                       # 运行测试
rake travis_release                                                             # 已弃用:使用"release"任务替代
rake validate                                                                   # 检查Ruby文件语法并调用:syntax和:metadata_lint
rake voxpupuli:custom:lint_all                                                  # 使用所有puppet-lint检查进行代码检查

Onceover

若要运行onceover,需覆盖入口点:

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint onceover ghcr.io/voxpupuli/voxbox:8 help

Onceover允许针对控制仓库运行测试。

初始化onceover:

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint onceover ghcr.io/voxpupuli/voxbox:latest init

运行spec测试:

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint onceover ghcr.io/voxpupuli/voxbox:8 run spec

使用Puppetfile中的内部git+ssh模块运行spec测试:

shell
podman run -it --rm \
  -v ~/.ssh:/root/.ssh:Z \
  -v $PWD:/repo:Z \
  --entrypoint onceover ghcr.io/voxpupuli/voxbox:latest run spec

带Puppet输出运行spec测试:

shell
podman run -it --rm \
  -v $PWD:/repo:Z \
  -e SHOW_PUPPET_OUTPUT=true \
  --entrypoint onceover ghcr.io/voxpupuli/voxbox:latest run spec

其他命令:

命令功能描述
show puppetfile分析Puppetfile并显示可用更新
update puppetfile更新模块

更多命令、所需配置和使用方法详见https://github.com/voxpupuli/onceover%E3%80%82

Shell

若需要shell,需覆盖入口点:

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint ash ghcr.io/voxpupuli/voxbox:8

Puppet

若要执行puppet,将入口点更改为puppet并传递子命令/参数。

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint puppet ghcr.io/voxpupuli/voxbox:8 --help

puppet-strings

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint puppet ghcr.io/voxpupuli/voxbox:8 strings --help

puppet-ghostbuster

若要执行puppet-ghostbuster,将入口点更改为ash并向容器传递命令。Ghostbuster需要连接到OpenVoxDB/PuppetDB,因此需提供环境变量。可在https://github.com/voxpupuli/puppet-ghostbuster%E4%BB%93%E5%BA%93%E7%9A%84%E6%96%87%E6%A1%A3%E4%B8%AD%E6%89%BE%E5%88%B0%E7%9B%B8%E5%85%B3%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E3%80%82

Ghostbuster支持以下检查:

  • ghostbuster_classes
  • ghostbuster_defines
  • ghostbuster_facts
  • ghostbuster_files
  • ghostbuster_functions
  • ghostbuster_hiera_files
  • ghostbuster_templates
  • ghostbuster_types

可通过--only-checks组合这些检查,用逗号分隔列表。

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint ash ghcr.io/voxpupuli/voxbox:8
find . -type f -exec bundle exec --gemfile /Gemfile puppet-lint --only-checks ghostbuster_classes,ghostbuster_facts {} \+

YAMLlint

若要执行yamllint,将入口点更改为yamllint并向容器传递文件夹(例如.)。

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint yamllint ghcr.io/voxpupuli/voxbox:8 .

JQ

若要执行jq,将入口点更改为jq并向容器传递查询/参数。

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint jq ghcr.io/voxpupuli/voxbox:8 --help

cURL

若要执行curl,将入口点更改为curl并向容器传递查询/参数。

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint curl ghcr.io/voxpupuli/voxbox:8 --help

RuboCop

若要直接执行RuboCop,将入口点更改为rubocop并传递子命令/参数。

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint rubocop ghcr.io/voxpupuli/voxbox:8
podman run -it --rm -v $PWD:/repo:Z --entrypoint rubocop ghcr.io/voxpupuli/voxbox:8 --auto-gen-config

Librarian

若要执行librarian,将入口点更改为librarian-puppet并传递查询/参数。

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint librarian-puppet ghcr.io/voxpupuli/voxbox:8 help

hiera-eyaml

若要使用纯eyaml加密/解密数据,更改入口点如下:

shell
podman run -it --rm -v $PWD:/repo:Z --entrypoint eyaml ghcr.io/voxpupuli/voxbox:8 edit /repo/

EasyVoxBox (evb)

evb脚本简化了运行voxbox的命令输入。此外,它不关心选项顺序,这对设置shell别名很有用。运行命令时,必须进入openvox模块(含metadata.json文件)或控制仓库(含Puppetfile)的任何子目录。

显示evb帮助信息:

shell
$ evb help
Usage: /usr/local/bin/evb [options] [command]

available options:
  --noop        : 打印要运行的命令,但不执行
  --entrypoint  : 使用不同的入口点
                  可用入口点示例:
                  onceover, ash, puppet, yamllint, jq, curl, rubocop
                  默认:不指定入口点
  --image image : 使用不同的镜像(默认ghcr.io/voxpupuli/voxbox:8)
  --env VAR=val : 指定环境变量(可多次使用)
                  注意:赋值中的'./'将替换为容器中使用的正确路径。
                  示例:若在~/openvox-supermodule/spec/classes中启动脚本
                           并设置--env SPEC=./supermodule_spec.rb,将
                           使用-e SPEC=spec/classes/supermodule_spec.rb运行VoxBox
  --volume vol  : 指定要放入容器的额外卷
                  参见podman

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 voxbox 镜像标签

docker pull docker.xuanyuan.run/voxpupuli/voxbox:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull voxpupuli/voxbox:<标签>

更多 voxbox 镜像推荐

voxpupuli/vox-pupuli-tasks logo

voxpupuli/vox-pupuli-tasks

voxpupuli
Vox Pupuli Tasks是一个社区管理Web应用,专为Vox Pupuli协作者设计,提供Pull Request审查、Puppet模块维护自动化(如合并冲突处理、GitHub标签同步)等功能,提升社区协作效率。
1 次收藏100万+ 次下载
1 年前更新
voxpupuli/container-puppetserver logo

voxpupuli/container-puppetserver

voxpupuli
⚠️ 已弃用 ⚠️ 此Puppet Server容器镜像已废弃,即将归档,请改用OpenVox Server容器。原镜像用于运行Puppet Server,支持自定义配置、环境缓存管理、持久化存储及初始化脚本。
1 次收藏1万+ 次下载
1 年前更新
voxpupuli/puppetserver logo

voxpupuli/puppetserver

voxpupuli
⚠️ 已弃用 ⚠️ 此镜像用于运行Puppet Server容器,现建议使用OpenVox Server容器替代。原用于提供Puppet Server的Docker化部署,支持自定义配置、持久化存储及初始化脚本。
1万+ 次下载
1 年前更新
voxpupuli/puppetdb logo

voxpupuli/puppetdb

voxpupuli
PuppetDB的容器镜像(已弃用,建议使用OpenVox DB容器替代)
1万+ 次下载
1 年前更新
voxpupuli/renovate logo

voxpupuli/renovate

voxpupuli
Voxpupuli Renovate容器封装了renovate工具及必要插件,基于Alpine系统,体积更小且安全漏洞少,用于自动更新项目依赖。
1万+ 次下载
11 天前更新
voxpupuli/centos logo

voxpupuli/centos

voxpupuli
暂无描述
94 次下载
6 年前更新

查看更多 voxbox 相关镜像

轩辕镜像配置手册

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

Docker 配置

登录仓库拉取

通过 Docker 登录认证访问私有仓库

专属域名拉取

无需登录使用专属域名

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

Harbor 镜像源配置

Harbor Proxy Repository 对接专属域名

Portainer 镜像源配置

Portainer Registries 加速拉取

Nexus 镜像源配置

Nexus3 Docker Proxy 内网缓存

系统配置

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

MacOS OrbStack

MacOS OrbStack 容器配置

Docker Compose

Docker Compose 项目配置

NAS 设备

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

极空间

极空间 NAS 系统配置服务

网络设备

爱快路由

爱快 iKuai 路由系统配置

宝塔面板

在宝塔面板一键配置镜像

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

使用与功能问题

配置了专属域名后,docker search 为什么会报错?

docker search 限制

Docker Hub 上有的镜像,为什么在轩辕镜像网站搜不到?

站内搜不到镜像

机器不能直连外网时,怎么用 docker save / load 迁镜像?

离线 save/load

docker pull 拉插件报错(plugin v1+json)怎么办?

插件要用 plugin install

WSL 里 Docker 拉镜像特别慢,怎么排查和优化?

WSL 拉取慢

轩辕镜像安全吗?如何用 digest 校验镜像没被篡改?

安全与 digest

第一次用轩辕镜像拉 Docker 镜像,要怎么登录和配置?

新手拉取配置

轩辕镜像合规吗?轩辕镜像的合规是怎么做的?

镜像合规机制

错误码与失败问题

docker pull 提示 manifest unknown 怎么办?

manifest unknown

docker pull 提示 no matching manifest 怎么办?

no matching manifest(架构)

镜像已拉取完成,却提示 invalid tar header 或 failed to register layer 怎么办?

invalid tar header(解压)

Docker pull 时 HTTPS / TLS 证书验证失败怎么办?

TLS 证书失败

Docker pull 时 DNS 解析超时或连不上仓库怎么办?

DNS 超时

docker 无法连接轩辕镜像域名怎么办?

域名连通性排查

Docker 拉取出现 410 Gone 怎么办?

410 Gone 排查

出现 402 或「流量用尽」提示怎么办?

402 与流量用尽

Docker 拉取提示 UNAUTHORIZED(401)怎么办?

401 认证失败

遇到 429 Too Many Requests(请求太频繁)怎么办?

429 限流

docker login 提示 Cannot autolaunch D-Bus,还算登录成功吗?

D-Bus 凭证提示

为什么会出现「单层超过 20GB」或 413,无法加速拉取?

413 与超大单层

账号 / 计费 / 权限

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

免费版与专业版区别

轩辕镜像支持哪些 Docker 镜像仓库?

支持的镜像仓库

镜像拉取失败还会不会扣流量?

失败是否计费

麒麟 V10 / 统信 UOS 提示 KYSEC 权限不够怎么办?

KYSEC 拦截脚本

如何在轩辕镜像申请开具发票?

申请开票

怎么修改轩辕镜像的网站登录和仓库登录密码?

修改登录密码

如何注销轩辕镜像账户?要注意什么?

注销账户

配置与原理类

写了 registry-mirrors,为什么还是走官方或仍然报错?

mirrors 不生效

怎么用 docker tag 去掉镜像名里的轩辕域名前缀?

去掉域名前缀

如何拉取指定 CPU 架构的镜像(如 ARM64、AMD64)?

指定架构拉取

用轩辕镜像拉镜像时快时慢,常见原因有哪些?

拉取速度原因

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
voxpupuli/voxbox
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单,官方技术交流群:1072982923。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单,官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.