群辉部署rap2流程详解与踩坑

群辉部署rap2流程详解与踩坑

最后修改时间:7 months ago

公司今天打算弃用 apidoc ,而转向淘宝的 rap2 ,因为考虑文档的敏感性,最佳方案肯定是装在现有的群辉 NAS 上。

成功后来复盘做一记录

首先,我们打开项目地址,

rap2-delos (opens new window): 后端服务器仓库

rap2-dolores (opens new window): 前端 React 项目仓库

因为我这边采用群辉的 NAS ,那么通过 docker 显然更佳:

  1. 不怕污染环境,造成一些不可预计的错误
  2. 群辉套件中心可以方便的安装 docker
  3. 如果出现问题,可以方便的使用 NAS 的可视化界面,轻松重启。

图 1
docker 操作界面

注意

docker 安装过程略,请自行确保安装成功

所以,我们跟着 rap2-delosREADME[1] 直接进入主题

接着,就直接下载 Dockerfile.yaml ,下载后,为了省事,可以选择跟笔者一样,通过 NAS 可视化界面直接上传到方便找到的位置。

点击查看 Dockerfile.yaml 文件
# BUILDING
FROM node:lts-alpine AS builder

# base on work of llitfkitfk@gmail.com
LABEL maintainer="chibing.fy@alibaba-inc.com"

WORKDIR /app

# cache dependencies
COPY package.json ./

# 在国内打开下面一行加速
#RUN npm config set registry https://registry.npm.taobao.org/

# instal dependencies
RUN npm install typescript -g && \
    npm install

# build
COPY . ./
RUN npm run build

# RUNNING
FROM node:lts-alpine

# base on work of llitfkitfk@gmail.com
LABEL maintainer="chibing.fy@alibaba-inc.com"
# use China mirror of: https://github.com/jgm/pandoc/releases/download/2.7.3/pandoc-2.7.3-linux.tar.gz
RUN wget http://rap2-taobao-org.oss-cn-beijing.aliyuncs.com/pandoc-2.7.3-linux.tar.gz && \
    tar -xf pandoc-2.7.3-linux.tar.gz && \
    cp pandoc-2.7.3/bin/* /usr/bin/ && \
    pandoc -v && \
    rm -rf pandoc-2.7.3-linux.tar.gz pandoc-2.7.3

WORKDIR /app
COPY --from=builder /app/public .
COPY --from=builder /app/dist .
COPY --from=builder /app/node_modules ./node_modules
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

图 5

接着,随着下面图片的指引,打开 NASssh 端口

图 6

现在,我们就可以直接使用终端工具,连接到我们的 NAS 上了。

Info

终端工具请自行下载,笔者采用的是 xshell

Host : 192.168.2.100  // NAS 可视化界面的IP ,请按照实际情况自行判断
user : sicker // NAS 可视化界面登录采用的用户名
password : ******** // NAS 可视化界面登录采用的密码
1
2
3

登录成功后,会提示类似如下的界面

图 7

键入

> sudo docker -v

Docker version 18.09.8, build bfed4f5
1
2
3

验证 docker 是否安装成功。

如成功了,就可以去找到刚才上传 Dockerfile.yaml 文件。

找到后,在该路径直接键入

> sudo docker-compose up -d
1

如若安装成功,应可以看到 一排类似 Creating rap_mysql_1 ... done 的提示语句。

此时,可以键入

> sudo docker ps

CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS                PORTS                                                                 NAMES
b0e0dae2b315        rapteam/rap2-delos:latest     "docker-entrypoint.s…"   About an hour ago   Up About an hour      0.0.0.0:38080->38080/tcp                                              rap_delos_1
4cc7a9187550        mysql:5.7                     "docker-entrypoint.s…"   About an hour ago   Up About an hour      3306/tcp, 33060/tcp                                                   rap_mysql_1
b58ee2820383        redis:4                       "docker-entrypoint.s…"   3 hours ago         Up 3 hours            6379/tcp                                                              rap_redis_1
77cfba326062        rapteam/rap2-dolores:latest   "/docker-entrypoint.…"   3 hours ago         Up 3 hours            80/tcp, 0.0.0.0:3000->38081/tcp                                       rap_dolores_1
1
2
3
4
5
6
7

看到这 4 个项目起来啦,就说明成功啦!

但,也别高兴的太早,我们还差最后一步。参见文档,也可以看到。第一次运行需要手动初始化mysql数据库。最后,键入

> docker-compose exec delos node scripts/init
1

大功告成!现在打开你的 ${NAS IP}:3000 查看吧!

图 8

如果你还是没成功,也许,你需要接着往下看

# Issues

  1. [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for configuring a regular user and cannot be used for the root user
点开查看详细报错信息






 

 







2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.

2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'

2021-03-27 13:16:08+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.

2021-03-27 13:16:08+00:00 [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for configuring a regular user and cannot be used for the root user

Remove MYSQL_USER="root" and use one of the following to control the root user password:

- MYSQL_ROOT_PASSWORD

- MYSQL_ALLOW_EMPTY_PASSWORD

- MYSQL_RANDOM_ROOT_PASSWORD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

此解决方案就已经在报错中给予了提示。可以查看上述完整错误代码高亮处。大致翻译下来就是 MYSQL_USERMYSQL_PASSWORD 用于配置常规用户,不能用于 root 用户,删除 MYSQL_USER="root"

所以,让我们回头简单修改下 Dockerfile.yaml:64 ,将 MYSQL_USER: "root" 前加一个 # ,即

MYSQL_USER: "root"  => # MYSQL_USER: "root"
1

接着重新运行

> sudo docker-compose up -d
1
  1. mysql 5.7 启动后闪退

同上

  1. 运行数据库初始化报错

同上


  1. rap2-delos 的 readme (opens new window) ↩︎

- 全文完 -

留下一条留言?
默认颜色

主题颜色

标准颜色

更多颜色...