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

做为新时代的前端,咱们如今不少的项目都已经使用npm做为包管理器了,咱们会把一些通用组件发布到npm,可是有时候一些组件涉及到业务或者安全方面的,咱们不但愿把包发布到全部人都能看到的npm上,这时候咱们就须要有一个私有的npm资源库。这里咱们选用sinopia来搭建咱们本身的npm,而后利用docker来进行打包和部署.前端

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

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

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

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

咱们把这里的url改为http://r.cnpmjs.org,由于在国内直接使用npmjs.org会很卡,并且很容易丢包,形成安装失败docker

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

打包完了以后咱们能够传到docker hub上,这样咱们能够在咱们的服务器上直接经过安全

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

来进行启动docker,可是仍是网络问题,咱们打包上传的过程能够说是蜗牛通常,反正我传了一天都没有传上去。服务器

固然咱们仍是有别的办法的,经过网络

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

命令把咱们的image打包成一个文件,而后上传到咱们的服务器上,再经过ui

docker load -i <path to image tar file>

在服务器上load一下这个image,而后就能够run了url

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

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

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

相关文章
相关标签/搜索