YAPi打包Dockerfile
[root@k8s-node-10-82-4-105 yapi2]# cat Dockerfile
FROM node:11 as builder
# 基础环境构建
RUN apt-get install -y git python make openssl tar gcc
#增加代码包
ADD yapi.tar.gz /home/
#准备运行目录,并复制代码到运行目录
RUN mkdir /yapi && mv /home/yapi-1.7.0 /yapi/vendors
#指定配置文件
COPY config.json /yapi
# 工作目录
WORKDIR /yapi/vendors
#安装相关模块
RUN npm install --production --registry https://registry.npm.taobao.org && npm run install-server
#复制启动脚本
COPY entrypoint.sh /usr/bin
#更换代码路径准备NFS挂载目录。
#RUN mv /yapi /yapi2
#启动命令
ENTRYPOINT ["/usr/bin/entrypoint.sh"]
config.json文件
[root@k8s-node-10-82-4-105 yapi2]# cat config.json
{
"port": "3000",
"adminAccount": "net2817@126.com",
"db": {
"servername": "192.168.115.36",
"DATABASE": "yapi2",
"port": 32308
}
}
执行脚本
[root@k8s-node-10-82-4-105 yapi2]# cat entrypoint.sh
#!/bin/sh
#代码运行目录迁回
# yapi初始化后会有一个init.lock文件
sed -i 's/192.168.115.36/yapi-mongodb/g' /yapi/config.json
sed -i 's/32308/27017/g' /yapi/config.json
lockPath="/yapi/init.lock"
# 如果初始化文件文件存在,则直接运行,否则初始化
cd /yapi/vendors
if [ ! -f "$lockPath" ]; then
# 启动Yapi初始化
npm run install-server
node server/app.js
else
# 运行yapi管理系统
node server/app.js
fi
mongodb配置
数据卷作持久化:
YAPI配置
不作持久化: