> 文章列表 > docker 下 pnpm node环境

docker 下 pnpm node环境

docker 下 pnpm node环境

pnpm 本机环境 昨天还好好的,今天就无法使用了。最后用docker 一样的环境才成功

本机报错

@apps/admin:dev: cache bypass, force executing 07f892bd0d4533a7
@apps/admin:dev: 
@apps/admin:dev: > @apps/admin@3.0.0-beta.1 dev /project/github/ben3/apps/admin
@apps/admin:dev: > vite
@apps/admin:dev: 
@apps/admin:dev: 
@apps/admin:dev: 当前处于开发测试阶段,还会有大量更新,仅供参考,请勿用于实际项目!
@apps/admin:dev: 
@apps/admin:dev: 

最后的原因竟然是权限导致的。在 启动命令加上超级管理权限才可以sudo pnpm dev, 可能是前几天 本机更新了相关的 包导致(brew update)

docker-compose 文件内容

docker-compose.yml

version: '3.0'
services:pnpm:container_name: pnpmimage: 'gplane/pnpm:8.2.0-node18'volumes:- ./vben3:/projecttty: trueentrypoint: bashworking_dir: /projectports:- 4000:3000

执行

docker-compose

进入容器

docker exec -it pnpm bash

设置镜像源

pnpm config set registry https://registry.npmmirror.com
#还原,需要的时候使用
pnpm config set registry https://registry.npmjs.org

删除 node_modules 目录

rm -rf node_modules

执行 项目初始化和运行

pnpm install && pnpm dev

最后成功~

一条docker命令有上面同样的效果

先删除 缓存

rm -rf node_modules
rm -rf .pnpm-store

创建容器

docker run -it -d --name pnpm3 \\
-p 4003:3000 \\
-v /Users/fox/project/github/github/vben3:/project \\
-w /project \\
--entrypoint bash \\
gplane/pnpm:8.2.0-node18

–rm 表示容器结束后,自动删除,如果需要自动删除容器,这个参数加上即可
-d 表示后台运行
–name 容器名称
-p 4003:3000 内部[3000]端口号映射为 ,宿主机端口号[4003]

进入容器

docker exec -it pnpm3 bash

执行生成 命令

pnpm config set registry https://registry.npmmirror.com \\
&& pnpm install \\
&& pnpm dev

pnpm config set registry https://registry.npmmirror.com 这个命令可以不要,这个是设置 国内镜像源