Sign inSign up

xianheyan/yapi

By xianheyan

•Updated over 4 years ago

yapi docker-compose

Image
0

74

xianheyan/yapi repository overview

⁠关于docker-compose 启动 yapi

  • docker-yapi-compose.yml
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 # 映射数据库保存目录到宿主机,防止数据丢失

启动项目

  • 默认docker-yapi-compose.yml yml配置中使用了 /opt/yapi 目录需要提前创建
mkdir -p /opt/yapi

docker-compose -p yapi -f ./docker-yapi-compose.yml up -d

访问IP 9090 端口根据需求初始化项

  • 初始化部署路径不要修改[不建议修改,如果修改请保持与 yapi_start.sh中的目录保持一直]
  • 项目初始化成功会提示"部署成功字样 提示访问 http://127.0.0.1:3000⁠" 重启一下 yapi 服务即可正常访问

重启 yapi

  • 访问 访问IP 3000 端口
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

      1. docker-compose 脚本需要根据自己需要创建一个数据挂在目录,可以根据自己需求自行修改
      1. docker-compose image,可以根据自己需求定义镜像名 docker build -t image:tag⁠ .
      1. docker-compose ports 关于使用端口自行定义
      1. docker-compose restart: always # 设置容器自启模式

  • ./docker-compose/dockerfile/Dockerfile

      1. 使用了mongo:5.0-focal 基础镜像
      1. 指定用户为root.
      1. 安装net-tools nodejs npm软件包
      1. 执行默认WORKDIR /data/yapi
      1. 把初始化脚本放到了 /yapi_start.sh

  • ./docker-compose/dockerfile/yapi_start.sh

      1. 定义了项目部署路径 vendors=/data/yapi/my-yapi/vendors
      1. 判断mongod 服务是否启动
      1. 第一次启动项目是vendors是不存在的,根据项目判断是否初始化 9090 服务
      1. vendors存在初始化 3000 服务

Tag summary

Content type

Image

Digest

Size

343.5 MB

Last updated

over 4 years ago

docker pull xianheyan/yapi:v0.16.2.ry