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

相关推荐
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS4 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心4 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing4 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)4 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang4 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特4 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe4 天前
docker常见命令
docker
正经教主5 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿5 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器