阿里妈妈前端团队出品的开源接口管理工具RAP第二代 http://rap2.taobao.org 推荐使用 Docker 快速部署
首先要知道如何安装docker 去docker分类当中找响应的文章即可在任意地方建立目录 rap git clone https://github.com/thx/rap2-delos.git 把本仓库中的
docker-compose.yml 放到 rap 目录中 Rap 前端服务的端口号默认为 3000,你可以在
docker-compose.yml 中按照注释自定义
如果自定义 那么我们可以对docker-compose.yml进行改造 修改成自己的数据库连接地址如下所示:
> # mail@dongguochao.com
> # llitfkitfk@gmail.com
> # chibing.fy@alibaba-inc.com
>
> version: "3"
>
> services: # frontend dolores:
> image: rapteam/rap2-dolores:latest
> ports:
> #冒号前可以自定义前端端口号,冒号后不要动
> - 3000:38081
>
> # backend delos:
> image: rapteam/rap2-delos:latest
> ports:
> # 这里的配置不要改哦
> - 38080:38080
> environment:
> - SERVE_PORT=38080
> # if you have your own mysql, config it here, and disable the 'mysql' config blow
> # 这里改成自己的数据库连接地址 端口号 用户名 密码 和 数据库名称 胡军
> - MYSQL_URL=10.10.20.120 # links will maintain /etc/hosts, just use 'container_name'
> - MYSQL_PORT=3306
> - MYSQL_USERNAME=root
> - MYSQL_PASSWD=123456
> - MYSQL_SCHEMA=rap2
>
> # redis config
> - REDIS_URL=redis
> - REDIS_PORT=6379
>
> # production / development
> - NODE_ENV=production
> ###### 'sleep 30 && node scripts/init' will drop the tables
> ###### RUN ONLY ONCE THEN REMOVE 'sleep 30 && node scripts/init'
> command: /bin/sh -c 'node dispatch.js'
> # init the databases
> # command: sleep 30 && node scripts/init && node dispatch.js
> # without init
> # command: node dispatch.js
> depends_on:
> - redis
> # 这里注释掉mysql 不引用它 胡军
> # - mysql
>
> redis:
> image: redis:4
>
> # disable this if you have your own mysql
> # mysql: # image: mysql:5.7
> # expose 33306 to client (navicat)
> #ports:
> # - 33306:3306
> # volumes:
> # change './docker/mysql/volume' to your own path
> # WARNING: without this line, your data will be lost.
> # - "./docker/mysql/volume:/var/lib/mysql"
> # command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --innodb-flush-log-at-trx-commit=0
> # environment:
> # MYSQL_ALLOW_EMPTY_PASSWORD: "true"
> # MYSQL_DATABASE: "rap2"
> # MYSQL_USER: "root"
> # MYSQL_PASSWORD: ""
如果不自定义 按照原有的直接来 数据库会被安装到docker里面 在外部也无法访问到mysql 无法备份等操作 不算方便哈 要是这样那么就往下走即可
在 rap 目录下执行下面的命令:
拉取镜像并启动
docker-compose up -d
启动后,第一次运行需要手动初始化mysql数据库
#⚠️注意: 只有第一次该这样做
docker-compose exec delos node scripts/init
#部署成功后 访问
http://localhost:3000 # 前端(可自定义端口号)
http://localhost:38080 # 后端
如果访问不了可能是数据库没有链接上,关闭 rap 服务
docker-compose down
再重新运行
docker-compose up -d
如果 Sequelize 报错可能是数据库表发生了变化,运行下面命令同步
docker-compose exec delos node scripts/updateSchema
注意:第一次运行后 rap 目录下会被自动创建一个 docker 目录,里面存有 rap 的数据库数据,可千万不要删除。
镜像升级 Rap 经常会进行 bugfix 和功能升级,用 Docker 可以很方便地跟随主项目升级
#拉取一下最新的镜像
docker-compose pull
#暂停当前应用
docker-compose down
重新构建并启动
docker-compose up -d --build
#有时表结构会发生变化,执行下面命令同步
docker-compose exec delos node scripts/updateSchema
清空不被使用的虚悬镜像
docker image prune -f
https://github.com/thx/rap2-delos 官方里面的readme当中解释的很清楚了!
常用命令:
docker-compose exec delos node scripts/initSchema //清空rpa2的所有数据
docker-compose exec mysql mysql //进入mysql的命令