
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Node.js Dev Container 是由 Node.js 官方维护的开发容器配置集合,旨在为 Node.js 项目提供标准化、可复现的开发环境。该镜像基于微软 Dev Container 规范构建,集成了 Node.js 运行时、常用开发工具及配置模板,可直接与 VS Code Dev Containers 扩展或 GitHub Codespaces 配合使用,帮助开发者快速搭建一致的本地或云端开发环境,避免因环境差异导致的"在我电脑上能运行"问题。
git、curl、wget、build-essential(编译依赖)eslint、prettier、npm-check-updates、husky(可选)docker-cli、docker-compose(支持容器内操作 Docker)devcontainer.json 配置文件自定义环境(工具安装、扩展集成、用户权限等)node)运行,避免权限风险方式 1:通过 VS Code 快速启动
F1 打开命令面板,输入并选择 Dev Containers: Add Dev Container Configuration Files....devcontainer/devcontainer.json 配置文件方式 2:手动配置 devcontainer.json
在项目根目录创建 .devcontainer/devcontainer.json 文件,示例基础配置如下:
json{ "name": "Node.js Dev Environment", "image": "mcr.microsoft.com/devcontainers/javascript-node:18", // 指定 Node.js 18 基础镜像 "features": { "ghcr.io/devcontainers/features/git:1": {}, // 安装 git "ghcr.io/devcontainers/features/node:1": { "version": "18" } // 显式指定 Node.js 版本 }, "customizations": { "vscode": { "extensions": [ "dbaeumer.vscode-eslint", // ESLint 扩展 "esbenp.prettier-vscode" // Prettier 扩展 ] } }, "remoteUser": "node" // 使用非 root 用户运行 }
基础 Docker Run 命令(手动启动容器)
bash# 拉取 Node.js 18 基础镜像并启动交互式终端 docker run -it --rm \ -v "$(pwd):/workspace" \ # 挂载当前项目到容器内 /workspace -w /workspace \ # 设置工作目录 mcr.microsoft.com/devcontainers/javascript-node:18 \ bash
Docker Compose 多服务配置(Node.js + 数据库)
适用于需要数据库等依赖服务的 Node.js 项目,创建 .devcontainer/docker-compose.yml:
yamlversion: '3.8' services: app: build: context: . dockerfile: Dockerfile # 自定义构建(可选) volumes: - ../..:/workspace:cached # 挂载项目代码 command: sleep infinity # 保持容器运行 depends_on: - db # 依赖数据库服务 environment: - NODE_ENV=development - DATABASE_URL=postgres://user:password@db:5432/mydb db: image: postgres:15 environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=password - POSTGRES_DB=mydb volumes: - postgres-data:/var/lib/postgresql/data # 持久化数据库数据 volumes: postgres-data:
对应的 .devcontainer/devcontainer.json 需指定使用 Docker Compose:
json{ "name": "Node.js + PostgreSQL", "dockerComposeFile": "docker-compose.yml", "service": "app", # 指定主服务 "workspaceFolder": "/workspace", "remoteUser": "node" }
devcontainer.json)| 参数路径 | 说明 | 示例值 |
|---|---|---|
name | 容器环境名称(显示在 VS Code 状态栏) | "Node.js Dev Env" |
image | 基础镜像地址(若不使用本地构建) | "mcr.microsoft.com/devcontainers/javascript-node:18" |
build | 本地构建配置(替代 image) | { "dockerfile": "Dockerfile", "args": { "NODE_VERSION": "18" } } |
features | 集成额外工具(通过 Dev Container Features 市场) | { "ghcr.io/devcontainers/features/node:1": { "version": "18" }, "ghcr.io/devcontainers/features/git:1": {} } |
customizations.vscode.extensions | VS Code 扩展自动安装列表 | ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] |
customizations.vscode.settings | VS Code 工作区设置 | { "editor.formatOnSave": true } |
remoteUser | 容器内运行用户(推荐使用非 root 用户 node) | "node" |
containerEnv | 容器内环境变量 | { "NODE_ENV": "development", "PORT": "3000" } |
mounts | 额外文件挂载(如本地 npm 缓存加速依赖安装) | ["source=${localEnv:HOME}/.npm,target=/home/node/.npm,type=bind"] |
onCreateCommand | 容器创建后执行的命令(如安装项目依赖) | "npm install" |
构建时环境变量(通过 build.args 传递)
| 变量名 | 说明 | 默认值 |
|---|---|---|
NODE_VERSION | Node.js 版本 | "lts"(最新 LTS 版本) |
NPM_VERSION | npm 版本 | 与 Node.js 版本匹配 |
YARN_VERSION | yarn 版本(可选安装) | 不安装 |
USER_UID | 非 root 用户 UID | 1000 |
USER_GID | 非 root 用户 GID | 1000 |
运行时环境变量(通过 containerEnv 配置)
| 变量名 | 说明 | 示例值 |
|---|---|---|
NODE_ENV | Node.js 运行环境 | "development" |
PORT | 应用监听端口 | "3000" |
DEBUG | 调试模式开关(如 express:*) | "app:*" |
若基础镜像不满足需求,可创建 .devcontainer/Dockerfile 自定义构建:
dockerfile# 基于 Node.js 18 基础镜像 FROM mcr.microsoft.com/devcontainers/javascript-node:18 # 安装额外系统依赖(如构建工具) RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ make \ g++ \ && apt-get clean && rm -rf /var/lib/apt/lists/* # 安装全局 npm 包 RUN npm install -g pm2 nodemon # 切换工作目录 WORKDIR /workspace # 设置启动命令(可选) CMD ["npm", "run", "dev"]
对应的 devcontainer.json 需指定构建配置:
json{ "build": { "context": ".", "dockerfile": "Dockerfile", "args": { "NODE_VERSION": "18" } } }
npm install),耗时较长;后续启动会复用缓存,速度更快。node,若需修改文件权限,可通过 sudo 命令(容器内已预配置密码less sudo)。devcontainer.json 锁定 Node.js 版本(如 18 而非 lts)以避免意外升级。mounts 配置挂载本地 npm/yarn 缓存目录,可大幅加速依赖安装。以下是 nodejs/devcontainer 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务