- 添加 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
68 lines
2.1 KiB
Docker
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"]
|