Files
ljwx-harbor/harbor/base-images/docker/base/node20-pnpm/Dockerfile
T
bruno 435834dc79 feat: Harbor 版本化配置
- 添加 Harbor 快速恢复脚本 (harbor-quick-restore.sh)
- 添加完整恢复指南 (HARBOR-RESTORE-GUIDE.md)
- 添加版本信息文件 (VERSION.md)
- 更新 .gitignore 排除敏感数据
- 配置 harbor git remote
- 修复 Cloudflare Tunnel 配置

系统重装后可通过以下命令快速恢复:
git clone http://192.168.1.83:33000/gao/ljwx-harbor.git
cd ljwx-harbor
./harbor-quick-restore.sh
2026-02-27 08:12:30 +08:00

68 lines
2.1 KiB
Docker

# Node.js 20 + pnpm 基础镜像
# 用于前端项目构建和工具链开发
#
# 使用示例:
# docker build -t harbor.omniverseai.net/ljwx-base-images/node20-pnpm:latest .
# docker build --build-arg PNPM_VERSION=9.15.0 -t harbor.omniverseai.net/ljwx-base-images/node20-pnpm:9.15.0 .
FROM harbor.omniverseai.net/library/node:20
# 可配置的 pnpm 版本
ARG PNPM_VERSION=9.12.3
LABEL maintainer="LJWX DevOps <devops@ljwx.com>" \
description="Node.js 20 with pnpm for frontend builds" \
version="node20-pnpm${PNPM_VERSION}"
# 安装系统依赖和工具
# - ca-certificates: SSL/TLS 证书
# - git: 版本控制(pnpm 安装 git 依赖时需要)
# - openssh-client: SSH 支持(私有仓库访问)
# - curl: HTTP 客户端
# - dumb-init: 进程管理(优雅处理信号)
# - python3, make, g++: 编译 native addon(可选,按需启用)
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
ca-certificates \
git \
openssh-client \
curl \
dumb-init; \
# 如果需要编译 native modules(如 node-sass, sharp 等),取消下面注释
# python3 \
# make \
# g++; \
rm -rf /var/lib/apt/lists/*; \
# 启用 corepack 并固定 pnpm 版本
corepack enable; \
corepack prepare pnpm@${PNPM_VERSION} --activate; \
# 验证安装
pnpm --version; \
node --version; \
npm --version; \
# 配置国内镜像源(阿里云)
npm config set registry https://registry.npmmirror.com; \
pnpm config set registry https://registry.npmmirror.com; \
# 验证镜像源配置
npm config get registry; \
pnpm config get registry
# 配置 pnpm 环境变量
ENV PNPM_HOME=/pnpm
ENV PATH=$PNPM_HOME:$PATH
# 创建 pnpm store 目录
# 在 CI 中可以挂载 volume 到这里实现缓存:
# docker run -v pnpm-store:/pnpm/store ...
RUN mkdir -p /pnpm/store
# 设置工作目录
WORKDIR /app
# 使用 dumb-init 作为 PID 1,优雅处理信号
ENTRYPOINT ["dumb-init", "--"]
# 默认命令:显示版本信息
CMD ["sh", "-c", "echo 'Node:' && node -v && echo 'pnpm:' && pnpm -v"]