本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/80281502
昨天研究了下 rap 发现是个和swagger的类似的api 管理工具。
界面感觉上很老,使用的是java开发的,还是使用Struts2 +hibernate 开发的。
https://blog.csdn.net/freewebsys/article/details/80271649
今天研究了下 rap2 ,并且最近也在研究 nodejs,发现这个使用的全是 node开发的。
再加上docker是非常的方便。决定使用docker进行基础的镜像构建。
rap2 是两个部分开发的,前后端分离:
rap2-delos: 后端数据API服务器,基于Koa + MySQL + Redis
rap2-dolores: 前端静态资源,基于React
需要编译两个镜像,一起启动才行。使用node写了一个后端,和一个前段。
rap2 没有官方的镜像。还需要自己打个镜像。
git地址:
https://github.com/thx/rap2-delos
https://github.com/thx/rap2-dolores
docker run -itd --name mariadb -v `pwd`/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mariadb -p 3306:3306 mariadb:latest
docker run -itd --name redis -p 6379:6379 redis:latest
数据使用mariadb,然后把数据放在当前位置创建个 mysql 文件夹里面。
重新命名了下,一个叫mariadb ,一个叫 redis
然后创建数据:
docker exec mariadb mysql -uroot -pmariadb -e 'CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci'
#查看是否创建了库。
docker exec mariadb mysql -uroot -pmariadb -e 'show databases'
Database
RAP2_DELOS_APP
information_schema
mysql
performance_schema
下载delos 代码,然后使用node进行编译。
和之前的类似:
https://blog.csdn.net/freewebsys/article/details/80197503
Dockerfile-delos:
FROM node:alpine
RUN echo -e "http://mirrors.aliyun.com/alpine/latest-stable/main\n\
http://mirrors.aliyun.com/alpine/latest-stable/community" > /etc/apk/repositories
#set timezone
RUN apk update && apk add tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
rm -rf /root/.cache
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org && \
apk update && apk add curl git
RUN mkdir /app && cd /app && \
git clone https://github.com/thx/rap2-delos.git && cd /app/rap2-delos && \
cnpm install && sed -i "s/localhost/mariadb/g" src/config/config.dev.ts && \
sed -i "s/password: ''/password: 'mariadb'/g" src/config/config.dev.ts && \
sed -i "s/redis: {/redis: {host: 'redis'/g" src/config/config.dev.ts && \
cnpm run build
WORKDIR /app/rap2-delos
ENTRYPOINT ["cnpm","run","dev"]
最后在用 cnpm 启动。
编译&启动,使用 –link 链接了,mariadb数据库,redis。rap2-delos
这个服务需要这两个。
docker build -f ./Dockerfile-delos -t rap2-delos:node-alpine .
docker run --rm -itd --name delos --link mariadb:mariadb \
--link redis:redis -p 8080:8080 rap2-delos:node-alpine
#创建数据库,之后初始化数据,再修改admin密码:
docker exec delos cnpm run create-db
docker exec -it mariadb mysql -uroot -pmariadb --databases RAP2_DELOS_APP
然后执行更新 admin密码:
MariaDB [RAP2_DELOS_APP]> UPDATE `RAP2_DELOS_APP`.`Users` SET `password`='14e1b600b1fd579f47433b88e8d85291' WHERE `id`='100000000';
再编译前端界面,使用 react 做的。
Dockerfile-dolores:
FROM node:alpine
RUN echo -e "http://mirrors.aliyun.com/alpine/latest-stable/main\n\
http://mirrors.aliyun.com/alpine/latest-stable/community" > /etc/apk/repositories
#set timezone
RUN apk update && apk add tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
rm -rf /root/.cache
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org && \
apk update && apk add curl git python make g++
RUN mkdir /app && cd /app && \
git clone https://github.com/thx/rap2-dolores && cd /app/rap2-dolores && \
sed -i "s/rap2api\.taobao\.org/localhost:8080/g" src/config/config.prod.js && \
cnpm install && cnpm rebuild node-sass && cnpm run build && \
cnpm install -g serve
WORKDIR /app/rap2-dolores
ENTRYPOINT ["serve","-s","build"]
进行编译和启动:
docker build -f ./Dockerfile-dolores -t rap2-dolores:node-alpine .
docker run --rm -itd -p 5000:5000 rap2-dolores:node-alpine
一共需要 4 个镜像才可以启动:
登录系统之后,还是好看的,使用react还是很好看的。
比之前的java版本好看的不是一点点,而且界面可以操作,修改功能还很多。
很好用,很方便。界面也很好看。
http://localhost:5000/
邮箱: [email protected]
密码:123456
必须修改mysql数据库,之后才能登录。
rap2 界面功能和 rap1 差不多,可以直接使用2了。无非就是node安装大家不熟悉。
现在使用docker 大大的简化了这个构建流程。可以启动了。
再修改下数据库,admin密码就可以登录了。
使用还是非常方便的。接下来研究上面的使用方法。
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/80281502