RAP2:使用docker镜像进行构建,启动部署

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/80281502

1,关于RAP2


昨天研究了下 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

2,基础服务mariadb和redis


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

3,编译rap2-delos服务端


下载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';

4,编译rap2-dolores服务端


再编译前端界面,使用 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 个镜像才可以启动:

5,登录系统


登录系统之后,还是好看的,使用react还是很好看的。
比之前的java版本好看的不是一点点,而且界面可以操作,修改功能还很多。
很好用,很方便。界面也很好看。

http://localhost:5000/
邮箱: [email protected]
密码:123456

必须修改mysql数据库,之后才能登录。






6,总结


rap2 界面功能和 rap1 差不多,可以直接使用2了。无非就是node安装大家不熟悉。
现在使用docker 大大的简化了这个构建流程。可以启动了。
再修改下数据库,admin密码就可以登录了。
使用还是非常方便的。接下来研究上面的使用方法。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/80281502

猜你喜欢

转载自blog.csdn.net/freewebsys/article/details/80281502