
sentisis/circleci-node本镜像专为CircleCI持续集成/持续部署(CI/CD)作业设计,基于官方NodeJS镜像构建,集成了CircleCI环境所需的预配置文件和辅助脚本。旨在简化NodeJS项目在CircleCI流程中的环境准备工作,减少重复配置,提升CI/CD效率。
node_modules缓存路径),优化依赖安装速度ci-install-deps:加速依赖安装脚本,支持依赖缓存检测与复用ci-run-tests:标准化测试执行流程,自动生成CircleCI兼容的测试报告ci-build-project:封装构建逻辑,支持自定义构建命令注入ci-cleanup:作业结束后清理临时文件,减少磁盘空间占用--slim标签变体,进一步缩减镜像大小(适用于资源受限环境)镜像通常托管于私有仓库(如公司内部Docker Registry)或Docker Hub,通过标签指定NodeJS版本:
bash# 拉取指定版本(例如NodeJS 18.x) docker pull [仓库地址]/nodejs-circleci:18 # 拉取轻量版本 docker pull [仓库地址]/nodejs-circleci:18-slim
bash# 挂载项目目录并运行测试脚本 docker run --rm -v $(pwd):/app -w /app [仓库地址]/nodejs-circleci:18 \ sh -c "./ci-install-deps && ./ci-run-tests"
在.circleci/config.yml中指定本镜像作为作业执行环境:
yamlversion: 2.1 jobs: test: docker: - image: [仓库地址]/nodejs-circleci:18 # 使用本镜像 steps: - checkout # 拉取代码 - run: ci-install-deps # 使用内置脚本安装依赖 - run: ci-run-tests # 使用内置脚本执行测试 - store_test_results: # 收集测试报告(依赖预配置的Artifacts路径) path: test-results
通过环境变量自定义镜像行为:
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
NODE_ENV | NodeJS运行环境 | test(CI环境默认) |
NPM_REGISTRY | 自定义npm仓库地址(加速依赖安装) | [***] |
DEPENDENCY_CACHE | 是否启用依赖缓存(true/false) | true |
TEST_REPORT_PATH | 测试报告输出路径 | ./test-results |
NODE_VERSION | 覆盖镜像默认NodeJS版本(部分标签支持) | 镜像标签指定版本 |
yamljobs: build: docker: - image: [仓库地址]/nodejs-circleci:18 environment: NPM_REGISTRY: "[***]" # 使用淘宝npm镜像 DEPENDENCY_CACHE: "true" steps: - checkout - run: ci-install-deps # 将使用自定义npm仓库安装依赖
ci-install-depspackage-lock.json/yarn.lock/pnpm-lock.yaml哈希,命中缓存时直接复用node_modulesbashci-install-deps # 自动检测包管理器并安装依赖
ci-run-tests--coverage(生成覆盖率报告)、--verbose(详细日志)bashci-run-tests --coverage # 执行测试并生成覆盖率报告
ci-build-projectBUILD_CMD(自定义构建命令,默认读取package.json的build脚本)bashBUILD_CMD="npm run build:prod" ci-build-project # 自定义构建命令
镜像通过标签区分NodeJS版本及特性:
| 标签格式 | 说明 | 示例 |
|---|---|---|
{node-version} | 标准版本,包含完整功能 | 18, 20 |
{node-version}-slim | 轻量版本,移除部分非必要工具 | 18-slim, 20-slim |
{node-version}-alpine | 基于Alpine Linux,最小镜像体积 | 18-alpine, 20-alpine |
latest | 指向最新稳定NodeJS版本的标准镜像 | - |
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务