
espark/ruby-ciesparklearning/ruby-ci 是一个基于 CircleCI Ruby 镜像构建的 Docker 镜像,扩展集成了 QT4、FFPMEG、Node.js 及 Yarn 工具链。该镜像专为 Ruby 项目的持续集成/持续部署(CI/CD)场景设计,提供完整的构建、测试依赖环境。
esparklearning/ruby-ci:2.6.3gcc、make 等)及测试框架依赖。ruby -v、node -v、yarn -v 命令查看。bundle install)、测试执行(rspec/minitest 等)、构建打包全流程。从 Docker Hub 拉取指定版本镜像:
bashdocker pull esparklearning/ruby-ci:2.6.3
启动容器并进入交互式终端,验证环境依赖:
bashdocker run -it --rm esparklearning/ruby-ci:2.6.3 /bin/bash
在容器内可执行以下命令检查组件版本:
bashruby -v # 验证 Ruby 版本 node -v # 验证 Node.js 版本 yarn -v # 验证 Yarn 版本 ffmpeg -version # 验证 FFPMEG 版本 qmake -v # 验证 QT4 版本(qmake 为 QT4 构建工具)
将本地 Ruby 项目目录挂载到容器内,执行依赖安装与测试:
bashdocker run -it --rm -v $(pwd):/app -w /app esparklearning/ruby-ci:2.6.3 \ sh -c "bundle install && yarn install && rake test"
-v $(pwd):/app:挂载当前目录到容器内 /app 路径-w /app:设置工作目录为 /appbundle install)、前端依赖安装(yarn install)、测试执行(rake test)在 .circleci/config.yml 中指定该镜像作为构建环境:
yamlversion: 2.1 jobs: build-and-test: docker: - image: esparklearning/ruby-ci:2.6.3 # 使用本镜像作为基础环境 steps: - checkout # 拉取代码 - restore_cache: # 恢复缓存(可选,加速依赖安装) keys: - gem-cache-{{ checksum "Gemfile.lock" }} - yarn-cache-{{ checksum "yarn.lock" }} - run: bundle install --path vendor/bundle # 安装 Ruby 依赖 - run: yarn install --frozen-lockfile # 安装前端依赖 - save_cache: # 保存缓存(可选) paths: - vendor/bundle - node_modules key: gem-cache-{{ checksum "Gemfile.lock" }}-yarn-{{ checksum "yarn.lock" }} - run: rake test # 执行测试 - run: rake build # 执行构建(如生成 gem 包或部署产物) workflows: version: 2 ci-pipeline: jobs: - build-and-test
RUBY_VERSION、BUNDLE_PATH 等),可通过 docker run -e "VAR=value" 覆盖或添加自定义变量。Bundler 管理,前端依赖通过 Yarn 管理,工具链路径已默认配置(无需额外设置 PATH)。如需基于新版本 CircleCI Ruby 镜像更新本镜像,可按以下步骤操作:
esparklearning 仓库的推送权限Dockerfile(基于目标 CircleCI Ruby 镜像版本,如 circleci/ruby:3.2.2)构建镜像
执行 docker build 命令,指定版本标签:
bashdocker build -t ${VERSION} .
其中 ${VERSION} 为目标版本号(如 3.2.2,需与基础 Ruby 版本匹配)。
标记镜像
将本地镜像标记为 Docker Hub 仓库格式:
bashdocker tag ${VERSION} esparklearning/ruby-ci:${VERSION}
推送镜像
推送标记后的镜像至 Docker Hub:
bashdocker push esparklearning/ruby-ci:${VERSION}
2.6.3 对应 Ruby 2.6.3),便于版本管理。Dockerfile 中显式指定。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务