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

相关推荐
Knight_AL2 小时前
Spring Boot + Docker:实现可挂载可热更新的 config.json
spring boot·docker·json
Wpa.wk2 小时前
Docker - 搭建镜像仓库- 了解
运维·经验分享·测试工具·docker·容器
pingzhuyan2 小时前
linux运维-KylinV10的aarch64架构-docker微服务运维部署(全篇)
linux·docker·jdk·rocketmq·kylin·aarch64
allen sue3 小时前
Moltbot(Clawdbot)
人工智能·docker
Wzx1980123 小时前
go聊天室接入mysql的项目docker部署流程
mysql·docker·golang
liux35283 小时前
基于kubeadm构建K8S高可用集群:从理论到实践
云原生·容器·kubernetes
岁岁种桃花儿3 小时前
构建SpringBoot项目Docker镜像并发布到k8s集群中进行运行
spring boot·docker·kubernetes
海兰3 小时前
Docker单节点部署Elasticsearch 9.0+(开发环境)
运维·docker·容器
Riu_Peter4 小时前
【记录】Ubuntu 安装 Docker
ubuntu·docker·eureka