version: "3.7"
services:
yapi:
hostname: yapi
image: xianheyan/yapi:v0.16.2.ry
container_name: yapi # 指定容器名称,如果不设置此参数,则由系统自动生成
restart: always # 设置容器自启模式
environment:
- TZ=Asia/Shanghai # 设置容器时区与宿主机保持一致
command: "bash /yapi_start.sh"
volumes:
- /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致
- /opt/yapi/my-yapi:/opt/yapi # 映射数据库保存目录到宿主机,防止数据丢失
ports:
- "9090:9090"
- "3000:3000"
depends_on:
- mongo
mongo:
hostname: mongo
image: mongo:5.0-focal
container_name: mongo # 指定容器名称,如果不设置此参数,则由系统自动生成
restart: always # 设置容器自启模式
environment:
- TZ=Asia/Shanghai # 设置容器时区与宿主机保持一致
volumes:
- /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致
- /opt/yapi/mongo:/data/db # 映射数据库保存目录到宿主机,防止数据丢失
启动项目
mkdir -p /opt/yapi
docker-compose -p yapi -f ./docker-yapi-compose.yml up -d
访问IP 9090 端口根据需求初始化项
重启 yapi
docker restart yapi
docker-compose -p yapi -f ./docker-yapi-compose.yml up -d
docker-compose -p yapi -f ./docker-yapi-compose.yml down
[具体说明:]
Dockerfile
#ssy@ssy:/tmp/yapi/docker-compose/dockerfile$ cat Dockerfile
FROM node:12
#### 镜像来源
### https://hub.docker.com/
####
LABEL maintainer "yxh <[email protected]>"
RUN npm config set registry https://registry.npm.taobao.org && \
npm install -g yapi-cli --registry https://registry.npm.taobao.org
RUN mkdir -p /opt/yapi
WORKDIR /opt/yapi
ADD ./yapi_start.sh /yapi_start.sh
EXPOSE 9090
EXPOSE 3000
yapi_start.sh
#!/usr/bin/env bash
set -x
myapi=/opt/yapi/my-yapi
vendors=$myapi/vendors
yapifun(){
mflg=`test -d $vendors && echo "true" || echo "false"`
if $mflg
then
echo "vendors 目录存在执行 node "
cd $myapi
node vendors/server/app.js
else
echo "vendors 目录不存在执行yapi server "
yapi server
fi
}
yapifun
./docker-compose/docker-yapi-compose.yml
./docker-compose/dockerfile/Dockerfile
./docker-compose/dockerfile/yapi_start.sh
Content type
Image
Digest
Size
343.5 MB
Last updated
over 4 years ago
docker pull xianheyan/yapi:v0.16.2.ry