在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 进入查看

相关推荐
杨浦老苏20 分钟前
搜索引擎聚合器Degoog
搜索引擎·docker·群晖
恋红尘32 分钟前
K8S Pod 基础解析-分篇-叩丁狼
云原生·容器·kubernetes·pod
丘桔1 小时前
k8s01:容器运行时之争
云原生·容器·kubernetes
Mr_Chenph2 小时前
OpenClaw 3.13 Skill编写初探(Docker)
docker·skill·openclaw
学不完的3 小时前
Docker 的安全优化
运维·安全·docker·容器·eureka
恋红尘3 小时前
K8S 服务发现-叩丁狼
linux·docker·kubernetes
sleP4o4 小时前
[Docker] ‘s Basic Usage
docker·容器·eureka
一直都在5724 小时前
K8s详解
云原生·容器·kubernetes
恋红尘4 小时前
K8S 高级调度-叩丁狼
adb·容器·kubernetes
恋红尘4 小时前
K8S 控制器-资源调度-叩丁狼
linux·docker·kubernetes