docker容器内如何安装使用cnpm ?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
隔壁的运维兄弟,要把苏南大叔写的nodejs
代码,塞到了docker
里面。那么,就面临着一个npm install
的问题,不太好的消息是:在调试阶段,要经常性的使用npm install
。那么就不可避免地面临一个问题:慢
。建议使用cnpm
来代替npm
,结果被反馈:cnpm
安装后,无法找到cnpm
命令。
于是就有了本文的内容,在node
容器里面,如何使用cnpm
命令呢?本文容器的基础镜像是:基于centos7.5
的node8
镜像。解决方案就是软连接ln
,但是由于docker
版的centos
是阉割版的,所以,cnpm
的路径是存在问题的。
容器内安装cnpm
假设容器名叫做:node_container
。那么,需要先进入容器内部。
docker exec -it node_container /bin/bash
执行命令:
npm install cnpm -g
安装完毕后,可以看到有如下类似回显内容:
npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
/opt/node/bin/cnpm -> /opt/node/lib/node_modules/cnpm/bin/cnpm
cnpm@6.0.0
updated 1 package in 34.723s
问题描述
如果试图执行cnpm
命令的话,会显示无法找到命令。真心是不按套路出牌啊。
[root@localhost update]# cnpm
-bash: cnpm: 未找到命令
解决方案
解决方案也蛮简单,就是做个软连接。
- 至于路径嘛,
cnpm
安装完毕的时候,不是有显示路径么... 或者,您还可以使用which
或者whereis
或者find
之类的,得到该路径:/opt/node/bin/cnpm
。
当然这个路径/opt/node/bin/cnpm
,也是个软链接,可以通过ls -al
查看真实的路径是:/opt/node/lib/node_modules/cnpm/bin/cnpm
。
- 后面的路径:
/usr/local/bin/cnpm
。比较好理解,/usr/local/bin/
,这个是系统的用户目录,只要里面的可执行文件,都是默认优先执行的。
重点就是:做好ln
软连接即可。命令行如下:
newsn.net:这里是【评论】可见内容
做好cnpm
的软连接之后,就可以愉快的使用cnpm install
了。安装速度明显快了好多,领导的脸上也露出了笑容......
相关链接
- 《如何利用centos的ln软链接命令,移动文件位置》 https://newsn.net/say/centos-ln.html
结论
更多cnpm
的小故事,请参见苏南大叔的经验文章:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
看看先
试一下
不错,解决了我的问题