使用verdaccio的docker镜像搭建npm私服

使用verdaccio的docker镜像搭建npm私服

  1. nginx配置
  2. 使用自定义文件修改npm源
  3. 使用自定义文件后,权限问题

首先安装docker

本人服务器环境centos6.9

yum install -y docker-io

如果出现没有安装任何软件的情况.可能是epel-release没有安装

yum install -y epel-release

启动

service docker start

检查是否安全ok

docker --version

查看是否有版本号,表示安装成功

拉取镜像

docker pull verdaccio/verdaccio

拉取配置文件demo

mkdir -p ~/docker
cd /data/demo
git clone https://github.com/verdaccio/docker-examples
cd docker-examples
mv docker-local-storage-volume ~/docker/verdaccio

具体路径自己设置

修改配置文件

cd ~/docker/verdaccio/conf && vi conf.yaml
uplinks:
  npmjs:
    url: https://registry.npm.taobao.org/

将对应的地方换成淘宝的源,也可以添加备选源

uplinks:
  npmjs:
   url: https://registry.npmjs.org/
  server2:
    url: http://mirror.local.net/
    timeout: 100ms
  server3:
    url: http://mirror2.local.net:9000/
  baduplink:
    url: http://localhost:55666/

这样设置后可以依次去找,具体可参见官网

启动verdaccio

docker run --name verdaccio -itd -v ~/docker/verdaccio:/verdaccio -p 4873:4873 verdaccio/verdaccio

注意:Verdaccio在容器内以非root用户身份运行(uid = 100,gid = 101),如果使用bind mount覆盖默认值,则需要确保将mount目录分配给正确的用户。在上面的示例中,您需要运行,sudo chown -R 100:101 /opt/verdaccio(这里的opt就是~/docker/verdaccio)否则您将在运行时获得权限错误。建议使用docker volume而不是使用bind mount。

配置域名,nginx代理

如果直接使用ip访问,不用管这里,使用其他web应用服务设置代理,参见官网

server {
  listen 80 default_server;
  location / {
    proxy_pass              http://127.0.0.1:4873/;
    proxy_set_header        Host $host;#这里很关键,一定要加
  }
}

这样访问就可以

添加用户

建议安装nrm,然后添加一个源地址

nrm方式

npm install nrm -g 
or
yarn global add nrm
nrm add 源名字 源地址
nrm use 源名字
npm adduser
#发布
npm publish

非nrm方式

npm adduser --registry  源地址
npm publish --registry 源地址

你可能感兴趣的:(js开发)