公司今天打算弃用 apidoc ,而转向淘宝的 rap2 ,因为考虑文档的敏感性,最佳方案肯定是装在现有的群辉 NAS 上。
成功后来复盘做一记录
首先,我们打开项目地址,
rap2-delos (opens new window): 后端服务器仓库
rap2-dolores (opens new window): 前端 React
项目仓库
因为我这边采用群辉的 NAS
,那么通过 docker
显然更佳:
- 不怕污染环境,造成一些不可预计的错误
- 群辉套件中心可以方便的安装
docker
- 如果出现问题,可以方便的使用
NAS
的可视化界面,轻松重启。
docker 操作界面
注意
docker 安装过程略,请自行确保安装成功
所以,我们跟着 rap2-delos
的 README
[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
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
接着,随着下面图片的指引,打开 NAS
的 ssh
端口
现在,我们就可以直接使用终端工具,连接到我们的 NAS
上了。
Info
终端工具请自行下载,笔者采用的是 xshell
Host : 192.168.2.100 // NAS 可视化界面的IP ,请按照实际情况自行判断
user : sicker // NAS 可视化界面登录采用的用户名
password : ******** // NAS 可视化界面登录采用的密码
2
3
登录成功后,会提示类似如下的界面
键入
> sudo docker -v
Docker version 18.09.8, build bfed4f5
2
3
验证 docker 是否安装成功。
如成功了,就可以去找到刚才上传 Dockerfile.yaml
文件。
找到后,在该路径直接键入
> sudo docker-compose up -d
如若安装成功,应可以看到 一排类似 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
2
3
4
5
6
7
看到这 4 个项目起来啦,就说明成功啦!
但,也别高兴的太早,我们还差最后一步。参见文档,也可以看到。第一次运行需要手动初始化mysql数据库。最后,键入
> docker-compose exec delos node scripts/init
大功告成!现在打开你的 ${NAS IP}:3000
查看吧!
如果你还是没成功,也许,你需要接着往下看
# Issues
- [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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
此解决方案就已经在报错中给予了提示。可以查看上述完整错误代码高亮处。大致翻译下来就是 MYSQL_USER
和 MYSQL_PASSWORD
用于配置常规用户,不能用于 root
用户,删除 MYSQL_USER="root"
。
所以,让我们回头简单修改下 Dockerfile.yaml:64
,将 MYSQL_USER: "root"
前加一个 #
,即
MYSQL_USER: "root" => # MYSQL_USER: "root"
接着重新运行
> sudo docker-compose up -d
- mysql 5.7 启动后闪退
同上
- 运行数据库初始化报错
同上