赞
踩
近期公司搬迁新的办公环境,在网络层做了安全规则,多网断划分、内外网隔离,因此需要在内网构建私有 NPM、YUM、PIP、Maven、Docker 仓库。
主机 | IP | 系统信息 | 软件 |
---|---|---|---|
yum-repos.host.com | 192.168.1.250 | CentOS Linux release 7.8.2003 (Core) Kernel: 3.10.0-1127.el7.x86_64 | nginx version: nginx/1.20.0 cnmpjs.org 最新版 |
数据库选择
搭建 cnpm 服务是需要数据库支撑的,官方提供了 mysql、sqlite、postgres、mariadb 数据库的支持,在这里我们选用 mysql 来提供数据服务。
# 使用 docker 构建 Mysql 数据
# 安装docker 19.03.9
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum -y install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io
# 构建数据库
$ sudo docker pull mysql:5.7.34
$ mkdir /data/mysql-data
$ sudo docker run --name cnmp_mysql -v /data/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=cnmp -p 3306:3306 -d mysql:5.7.34
# 创建数据库并导入 sql
$ mysql> create database cnmpjs;
$ mysql> source docs/db.sql;
安装配置 CNMPJS.ORG
依赖安装
克隆 cnmpjs.org 项目并安装依赖
# 克隆项目, 使用最新版即可
$ git clone https://github.com/cnpm/cnpmjs.org.git
# 安装node
$ sudo yum install -y nodejs
# 设置 npm 源
$ npm config set registry https://registry.npm.taobao.org
# 安装依赖
$ npm install
cnmpjs.org 配置
registryPort: 7001, //registry 端口 webPort: 7002, // web 端口 bindingHost: '' // 所有人都可以访问 database: { db: 'cnpmjs', // 数据库名称 username: 'root', // 数据库用户 password: 'cnmp', // 数据库密码 dialect: 'mysql', // 数据库类型 host: '192.168.1.250', // 数据库主机 port: 3306, // 数据库端口 pool: { maxConnections: 10, minConnections: 0, maxIdleTime: 30000 }, dialectOptions: { trace: true, }, // storage: path.join(dataDir, 'data.sqlite'), logging: !!process.env.SQL_DEBUG, } enablePrivate: false, // 是否开启私有模式 scopes: [ '@cnpm', '@cnpmtest', '@cnpm-test' ], admins: { admin: 'admin@magic.com', // 管理员账号 }
项目启动
npm run start
配置 nginx
server{
listen 80;
server_name cnmp-repos.magic.com;
location / {
proxy_pass http://127.0.0.1:7002/;
proxy_set_header X-Real-IP $remote_addr;
}
location /registry/ {
proxy_pass http://127.0.0.1:7001/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
访问: htttp://cnmp-repos.magic.com
测试
npm publish
npm notice
npm notice 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/924658
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。