在Docker Node环境下安装包

Node.js在Windows下推荐使用Docker安装,之前没有尝试过,记录下ChatGPT总结的过程

需求如下:

本地已下载有一个node:24-alpine的镜像,需要创建一个容器,在容器中使用目录E:\Code\Javascript\sample-apps-master的内容执行npm install sample-apps

分析需求,也即需要在容器里挂载本机目录 E:\Code\Javascript\sample-apps-master

Dockerfile 和命令行示例如下:

1. Dockerfile 示例

复制代码
# 使用本地 node:24-alpine 镜像
FROM node:24-alpine

# 设置工作目录
WORKDIR /app

# 挂载卷会在运行时指定,本地文件会映射到 /app
# 所以这里不需要 COPY

# 默认命令(可选)
CMD ["sh"]

说明:

  • WORKDIR /app → 设置容器工作目录

  • 因为本地目录要挂载进 /app,所以不需要 COPY

  • 默认启动 shell,方便调试

2. 命令行运行容器并执行 npm install

方法一:进入容器交互式执行

bash 复制代码
docker run -it --rm `
  -v E:\Code\Javascript\sample-apps-master:/app `
  -w /app `
  node:24-alpine sh

进入容器后执行:

bash 复制代码
npm install sample-apps

方法二:一条命令直接安装(无需手动进入容器)

bash 复制代码
docker run -it --rm `
  -v E:\Code\Javascript\sample-apps-master:/app `
  -w /app `
  node:24-alpine sh -c "npm install sample-apps"

解释:

参数 作用
-v E:\Code\Javascript\sample-apps-master:/app 挂载本机目录到容器 /app
-w /app 设置容器工作目录
sh -c "npm install sample-apps" 启动容器后执行命令
  • --rm → 容器执行完毕后自动删除

  • -it → 交互终端,方便看到 npm 输出

3. 可选调试方式(保持容器运行)

如果你希望安装完成后容器不退出方便查看日志:

bash 复制代码
docker run -it --rm `
  -v E:\Code\Javascript\sample-apps-master:/app `
  -w /app `
  node:24-alpine sh -c "npm install sample-apps && tail -f /dev/null"
  • tail -f /dev/null → 防止容器立即退出

  • 可以用 docker exec -it <container_id> sh 进入查看

相关推荐
DarkAthena3 小时前
wslc ps 卡死的排查:一次「停容器不停 VM」引发的连环故障
docker
小沈同学呀4 小时前
【Agent开发第十五期】部署上线:把 Alex 搬进浏览器,15 期全栈串联收官
docker·agent·从零搭建ai助手
lwx9148524 小时前
Docker-安装SSH服务
docker·容器·ssh
艾伦_耶格宇8 小时前
【kubernetes - 1.28版本】-11 K8S核心组件
java·容器·kubernetes
时间售卖铺9 小时前
Docker实战:一键部署轻量级容器
运维·docker·云原生
艾伦_耶格宇10 小时前
【kubernetes - 1.28版本】-10 K8S命名空间
云原生·容器·kubernetes
tedcloud12313 小时前
Docker Compose 部署 Uptime Kuma:配置 HTTPS、QQ 邮箱告警与数据备份
服务器·网络协议·ui·docker·容器·https·开源
syntaxsage13 小时前
Dive:Docker 镜像层可视化分析工具
运维·其他·docker·容器
java_logo13 小时前
Docker 部署 Samba:轻松搭建局域网文件共享
运维·docker·容器·文件共享·samba·smb·轩辕镜像
todoitbo1 天前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器