版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/s8460049/article/details/82191702
使用verdaccio的docker镜像搭建npm私服
坑
- nginx配置
- 使用自定义文件修改npm源
- 使用自定义文件后,权限问题
首先安装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 源地址