用于 Jenkins-Agent 中的 PodTemplate 使用,内置 NodeJS 的应用。
1.6K
dragonzw/builder-nodejs 是**dragonzw/builder-base 镜像的 Node.js 专项版本**,其核心作用是封装一个 定制化的 Node.js 构建基础环境,提供预安装的 Node.js 运行时、包管理工具与系统优化,用于作为“父镜像”快速构建 Node.js 应用的容器镜像(如安装依赖、编译代码、打包静态资源、生成最小化镜像)。
builder-base 镜像”信息)在之前的对话中,dragonzw/builder-base 镜像的定义明确提到:
npm/yarn,用于包管理)、版本控制工具(git,用于拉取代码)、辅助工具(curl/wget、jq)等;Dockerfile 继承 builder-base,用 npm install 安装依赖)。而**builder-nodejs** 是**builder-base 的细分**,将“Node.js 构建”的能力独立封装,更聚焦 Node.js 开发者的需求。
dragonzw/builder-nodejs 的具体功能(推断)基于“builder-base 的 Node.js 相关配置”和“Node.js 构建的常规需求”,builder-nodejs 镜像应包含以下核心功能:
node-20);node/npm 路径)等环境变量;npm 或 yarn,预配置国内镜像源如 https://registry.npmmirror.com,加速依赖下载);nvm),支持多版本 Node.js 切换。python3、make、g++,用于编译原生模块);git,用于拉取 Node.js 项目源码);curl/wget 下载资源、jq 处理 JSON、tar 压缩产物);pm2,用于生产环境运行 Node.js 服务)。alpine:3.19、ubuntu:22.04),体积精简(通常 < 200MB);TZ=Asia/Shanghai)、语言编码(LANG=C.UTF-8);/app/node_modules 存储依赖、/app 存储源码);node 用户),提升安全性。dragonzw/builder-nodejs 的核心价值是简化 Node.js 应用的容器化构建流程,适用于以下场景:
通过 Dockerfile 继承 builder-nodejs,直接安装依赖、编译代码并生成镜像(无需重复安装 Node.js/npm):
# 继承 builder-nodejs 镜像(假设标签为 node-20-npm)
FROM dragonzw/builder-nodejs:node-20-npm
# 复制 Node.js 项目源码到容器
COPY ./src /app
# 切换到源码目录
WORKDIR /app
# 用预安装的 npm 安装依赖
RUN npm install
# 编译代码(如 React/Vue 项目的 build 命令)
RUN npm run build
# 设置容器启动命令(用 pm2 运行服务)
CMD ["pm2", "start", "dist/server.js", "--no-daemon"]
团队内所有成员使用同一 builder-nodejs 镜像,避免因本地 Node.js 版本、npm 源、依赖差异导致的“构建不一致”问题。
在 Jenkins、GitLab CI 等流水线中,用 builder-nodejs 作为构建节点镜像,快速完成 Node.js 项目的依赖安装、测试(如 npm test)、打包(如生成静态文件)。
与 builder-base 的关系:
builder-nodejs 是 builder-base 的Node.js 专项子集,功能更聚焦(仅保留 Node.js 相关工具),体积更小。若需构建多语言应用(如同时包含 Node.js 和 Java),仍可使用 builder-base。
非官方镜像的风险:
该镜像由个人(dragonzw)维护,稳定性、安全性不如官方 Node.js 镜像(如 node:20-alpine、node:18-slim)。生产环境建议优先使用官方 Node.js 镜像或基于官方镜像自行定制(如添加团队常用依赖)。
版本兼容性:
镜像标签(Tag)通常对应Node.js 版本(如 node-20)、npm/yarn 版本(如 npm-10)和基础系统版本(如 alpine-3.19),需确认与目标应用的兼容性(如 Node.js 项目是否支持该版本)。
dragonzw/builder-nodejs 是一个定制化的 Node.js 构建基础镜像,核心价值是将“Node.js 运行时+包管理工具+系统优化”打包为标准化环境,作为“父镜像”快速构建 Node.js 应用镜像。其定位适合Node.js 开发者简化构建流程、团队统一构建环境、CI/CD 流水线集成,是 builder-base 镜像的 Node.js 专项延伸。
Content type
Image
Digest
sha256:1aa72f3f0…
Size
835.7 MB
Last updated
6 months ago
docker pull dragonzw/builder-nodejs