使用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這樣的生態,會節省咱們不少時間。

然而咱們節省的時間都花在網絡上來......╮(╯▽╰)╭

相關文章
相關標籤/搜索