Yapi 部署 (Docker-compose部署)

资源清单

主机 IP
Yapi节点 10.0.0.1
软件 版本
docker 20.10.12
docker-compose 1.23.1
Yapi镜像 1.12.0

  服务部署依赖 LDAP ,部署服务也可以不启用 LDAP 服务

一、Docker 安装

1. 使用国内 yum

$ yum install -y yum-utils device-mapper-persistent-data lvm2
$ yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2. 卸载旧版本的 docker

## 如果主机上已经有docker存在且不是想要安装的版本,需要先进行卸载。
$ yum remove -y docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-selinux \
              docker-engine-selinux \
              docker-engine \
              container*

3. 安装 Docker20.10 版本

$ yum -y install docker-ce-20.10.12-3.el7 docker-ce-cli-20.10.12-3.el7 vim

4. 设置镜像加速

$ mkdir /etc/docker
$ vi /etc/docker/daemon.json

{
  "registry-mirrors": ["https://xxxxxxxxx.mirror.aliyuncs.com"]
}

5. 启动 docker

$ systemctl start docker
$ systemctl enable docker
$ systemctl status docker

二、Docker-compose 安装

1. Docker-compose 安装

## github.com 可能访问超时,可以使用下面的获取下载下来后上传服务器即可
$ curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ curl -k "https://dl.cactifans.com/zabbix_docker/docker-compose" -o /usr/bin/docker-compose

$ chmod a+x /usr/bin/docker-compose

2. 查看 docker-compose 版本

$ docker-compose version

三、Yapi 安装

1. 获取 Yapi v1.12.0 版本包软件

$ wget https://codeload.github.com/YMFE/yapi/tar.gz/refs/tags/v1.12.0 -O yapi-1.12.0.tar.gz

2. 创建 Yapi 目录

$ mkdir -pv /data/yapi/{conf,log,docker-compose}
$ mv yapi-1.12.0.tar.gz /data/yapi/docker-compose/
$ cd /data/yapi/docker-compose

3. 提供镜像打包和服务配置文件等

a | Dockerfile 文件

$ cat Dockerfile

FROM node:11 as builder

RUN apt-get install -y  git python make openssl tar gcc
ADD yapi-1.12.0.tar.gz /home/
RUN mkdir /api && mv /home/yapi-1.12.0 /api/vendors
RUN cd /api/vendors && \
    npm install --production --registry https://registry.npm.taobao.org

FROM node:11

MAINTAINER evescn
ENV TZ="Asia/Shanghai" HOME="/"
WORKDIR ${HOME}

COPY --from=builder /api/vendors /api/vendors
EXPOSE 3000

COPY docker-entrypoint.sh /api/
RUN chmod 755 /api/docker-entrypoint.sh

ENTRYPOINT ["/api/docker-entrypoint.sh"]

b | docker-entrypoint.sh 文件

$ cat docker-entrypoint.sh

#!/bin/bash
set -eo pipefail
shopt -s nullglob

node /api/vendors/server/app.js

exec "$@"

c | docker-compose.yaml 文件

$ cat docker-compose.yaml

version: "3"

services:
  # Sevice
  yapi:
    build:
      context: ./
      dockerfile: ./Dockerfile
    image: harbor.evescn.com/devops/yapi:v1.12.0
    container_name: yapi
    environment:
      - VERSION=1.12.0
      - LOG_PATH=/tmp/yapi.log
    ports:
      - 3000:3000
    volumes:
      - /data/yapi/log/yapi.log:/tmp/yapi.log # log dir
      - /data/yapi/conf/config.json:/api/config.json
    depends_on:
      - mongo
    networks:
      - YapiNet

  # DB
  mongo:
    image: mongo:6.0.4
    container_name: mongo
    restart: always
    ports:
      - 27017:27017
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=Stacs@1808
    volumes:
      - /etc/localtime:/etc/localtime
      - /data/yapi/mongodb/data:/data/db
      - /data/yapi/mongodb/log:/var/log/mongodb
    networks:
      - YapiNet

networks:
  YapiNet:
    driver: bridge

d | config.json 文件

$ cat config.json

{
    "port": "3000",
    "adminAccount": "admin@stacs.cn",
    "timeout":120000,
    "db": {
        "servername": "mongo",
        "DATABASE": "yapi",
        "port": 27017,
        "user": "root",
        "pass": "root123",
        "authSource": "admin"
    },
    "mail": {
        "enable": true,
        "host": "smtp.163.com",    //邮箱服务器
        "port": 465,               //端口
        "from": "***@163.com",     //发送人邮箱
        "auth": {
            "user": "***@163.com", //邮箱服务器账号
            "pass": "*****"        //邮箱服务器密码
        }
    },
    "ldapLogin": {
        "enable": true,     // 没有 LDAP 服务,可以设置为 false ,或者不配置 ldapLogin 信息
        "server": "ldap://l-ldapt1.com",
        "baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
        "bindPassword": "password123",
        "searchDn": "OU=UserContainer,DC=test,DC=com",
        "searchStandard": "mail",    // 自定义格式: "searchStandard": "&(objectClass=user)(cn=%s)"
        "emailPostfix": "@163.com",
        "emailKey": "mail",
        "usernameKey": "name"
    }
}

  参考文档:

http://yapi.smart-xwork.cn/doc/devops/index.html

https://github.com/MyHerux/code-note/blob/master/Program/%E5%B7%A5%E5%85%B7%E7%AF%87/Yapi/%E4%BD%BF%E7%94%A8DockerCompose%E6%9E%84%E5%BB%BA%E9%83%A8%E7%BD%B2Yapi.md

4. 打包镜像

$ docker-compose build

5. 提供服务配置文件信息

$ cp config.json /data/yapi/conf/config.json

6. 启动服务

$ docker-compose up -d

7. 登陆服务

a | 访问服务 http://10.0.0.1:3000

img

b | 登陆 LDAP 账户

img

c | 登陆后详情

img

posted @ 2023-02-02 16:35  evescn  阅读(2945)  评论(0编辑  收藏  举报