使用docker和docker-sinopia搭建私有的npm

作为新时代的前端,我们现在很多的项目都已经使用npm作为包管理器了,我们会把一些通用组件发布到npm,但是有时候一些组件涉及到业务或者安全方面的,我们不希望把包发布到所有人都能看到的npm上,这时候我们就需要有一个私有的npm资源库。这里我们选用sinopia来搭建我们自己的npm,然后利用docker来进行打包和部署.

首先我们找到了这个项目https://github.com/kfatehi/docker-sinopia,这是别人创建的一个打包sinopia的docker build,我们把它clone下来,然后修改一下配置,适合我们的场景

git clone https://github.com/kfatehi/docker-sinopia.git

然后我们修改里面的config.yaml文件,这个文件在docker启动起来的时候会生成真正的配置文件

uplinks:
  npmjs:
    url: https://registry.npmjs.org/

我们把这里的url改成http://r.cnpmjs.org,因为在国内直接使用npmjs.org会很卡,而且很容易丢包,造成安装失败

修改完折后执行docker build -t jokcy/sinopia .命令,打包成image,这个过程会比较慢,依然是因为网络问题

打包完了之后我们可以传到docker hub上,这样我们可以在我们的服务器上直接通过

docker run --name sinopia -d -p 4873:4873 jokcy/sinopia:latest

来进行启动docker,但是还是网络问题,我们打包上传的过程可以说是蜗牛一般,反正我传了一天都没有传上去。

当然我们还是有别的办法的,通过

docker save -o ~/docker_images/sinopia jokcy/sinopia

命令把我们的image打包成一个文件,然后上传到我们的服务器上,再通过

docker load -i <path to image tar file>

在服务器上load一下这个image,然后就可以run了

当然以上修改配置、build的步骤你可以直接在服务器上执行,这样就省去打包上传的过程了

docker很好用,同时加上docker hub这样的生态,会节省我们很多时间。

然而我们节省的时间都花在网络上来......╮(╯▽╰)╭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值