做为新时代的前端,咱们如今不少的项目都已经使用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这样的生态,会节省咱们不少时间。
然而咱们节省的时间都花在网络上来......╮(╯▽╰)╭