bluebite/circleci-nodecircleci-dockerfiles是为CircleCI持续集成/持续部署(CI/CD)平台构建的自定义Docker镜像,基于Node.js环境,旨在简化Node.js项目在CircleCI中的自动化构建、测试及部署流程。该镜像整合了CircleCI运行所需的核心工具与Node.js运行环境,提供开箱即用的CI/CD支持。
通过Dockerfile构建或直接拉取已构建的镜像(需替换[镜像仓库地址]和[标签]为实际值):
bashdocker pull [镜像仓库地址]/circleci-node-image:[标签]
如需本地验证镜像环境,可通过以下命令启动容器并进入交互模式:
bashdocker run -it --rm [镜像仓库地址]/circleci-node-image:[标签] /bin/bash
进入容器后,可验证Node.js环境:
bashnode -v # 查看Node.js版本 npm -v # 查看npm版本
在项目的.circleci/config.yml配置文件中,指定该镜像作为执行环境。以下为基础配置示例:
yamlversion: 2.1 jobs: build-and-test: docker: - image: [镜像仓库地址]/circleci-node-image:[标签] # 使用自定义镜像 steps: - checkout # 拉取代码 - run: npm install # 安装项目依赖 - run: npm run lint # 代码检查 - run: npm run test # 执行单元测试 - run: npm run build # 构建项目(如适用) workflows: version: 2 ci-pipeline: jobs: - build-and-test # 触发构建测试流程
如需修改镜像默认配置(如升级Node.js版本、添加额外依赖),可基于原Dockerfile扩展:
dockerfile# 基于官方Node.js slim镜像构建(示例) FROM node:18-slim # 安装额外依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ git \ curl \ && rm -rf /var/lib/apt/lists/* # 设置工作目录 WORKDIR /app # 配置环境变量(可选) ENV NODE_ENV=production
通过.circleci/config.yml的environment字段为镜像传递自定义环境变量:
yamljobs: build-and-test: docker: - image: [镜像仓库地址]/circleci-node-image:[标签] environment: - NODE_OPTIONS: "--max-old-space-size=4096" # 调整Node.js内存限制 - NPM_REGISTRY: "[***]" # 配置npm镜像源 steps: # ... 省略步骤 ...
以下为完整的.circleci/config.yml示例,实现Node.js项目的自动化测试与构建:
yamlversion: 2.1 jobs: build-test-deploy: docker: - image: [镜像仓库地址]/circleci-node-image:18 # 使用Node.js 18版本镜像 steps: - checkout - restore_cache: # 缓存npm依赖,加速构建 keys: - npm-deps-{{ checksum "package-lock.json" }} - run: npm ci # 安装依赖(较npm install更严格,确保依赖版本一致) - save_cache: paths: - node_modules key: npm-deps-{{ checksum "package-lock.json" }} - run: npm run lint # 代码规范检查 - run: npm test # 执行单元测试 - run: npm run build # 构建项目输出 - store_artifacts: # 存储构建产物(如dist目录) path: dist # 部署步骤(根据实际需求添加,如部署至S3、服务器等) workflows: version: 2 main: jobs: - build-test-deploy: filters: branches: only: main # 仅在main分支触发构建
16、18对应Node.js 16.x、18.x版本),避免版本兼容性问题。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务