docker

使用Docker-compose 一键构建 yapi私服

2020-01-01  本文已影响0人  东方不喵

进行项目开发的时候,经常需要使用到 一下 api 文档工具,java中常用的swagger进行 api 文档生成,生成的文档可以跟很多工具整合,本文主要 讲 yapi 私服搭建
官网地址:
git: https://github.com/YMFE/yapi
docker-compose: https://github.com/jinfeijie/yapi

02.png 01.png

第一步安装docker 环境:

# 安装docker 
yum install -y docker

# 安装docker-compose

// 输入命令行 
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
// 配置权限
sudo chmod +x /usr/local/bin/docker-compose
// 查看版本
docker-compose --version

创建 docker 网络
docker network create back-net
配置防火墙 策略,不然会被拦截,访问不到
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

以上完成环境搭建,现在开始正式文件的配置

项目结构:

  1. 在 root 目录下 创建 yapi_demo文件夹(其他位置都行),并创建 docker-compose.yml 文件(代码在下方)
  2. 在 /root/yapi_demo/nginx/configs 目录下 构建 nginx.conf 文件(此处如果修改,需要修改docker-compose.yml 文件中 nginx 的映射路径)
03.png

yapi: docker-compose.yml

version: '2.1'
services:
  yapi01:
    image: mrjin/yapi:latest
    privileged: true
    # build: ./
    container_name: yapi
    environment:
      - VERSION=1.5.6
      - LOG_PATH=/tmp/yapi.log
      - HOME=/home
      - PORT=3000
      - ADMIN_EMAIL=oldguy@qq.com
      - DB_SERVER=mongo
      - DB_NAME=yapi
      - DB_PORT=27017
    # restart: always
    ports:
      - 127.0.0.1:3000:3000
    volumes:
      - ~/data/yapi/log/yapi.log:/home/vendors/log # log dir
    depends_on:
      - mongo
    entrypoint: "bash /wait-for-it.sh mongo:27017 -- entrypoint.sh"
    networks:
      - back-net
  mongo:
    image: mongo
    container_name: mongo
    privileged: true
    # restart: always
    ports:
      - 127.0.0.1:27017:27017
    volumes:
      - ~/data/yapi/mongodb:/data/db #db dir
    networks:
      - back-net
  nginx01:
    image: nginx
    container_name: nginx01
    privileged: true
    ports:
      - "80:80"
    environment:
      - NGINX_HOST=foobar.com
      - NGINX_PORT=80
    networks:
      - back-net
    volumes:
      - /root/yapi_demo/nginx/configs/:/etc/nginx/conf.d/
networks:
  back-net:
    external: true

nginx.conf

server {
    listen     80;
    server_name your.domain;
    keepalive_timeout   70;

    location / {
        proxy_pass http://yapi:3000;
    }
    location ~ /\. {
        deny all;
    }
}

配置完成之后,直接 返回到根目录,docker-compose.yml 的位置直接启动即可。

docker-compose up

默认管理员用户名密码:
用户名:me@jinfeijie.cn
密码:ymfe.org

PS:如果其他机器想要访问本地虚拟机访问不到的时候,同样可以使用虚拟机映射出去

04.png

修改nginx配置

    server {
        listen       8888;
        server_name  localhost;

        location / {
            proxy_pass http://192.168.62.161;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

nginx.conf


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8888;
        server_name  localhost;

        location / {
            proxy_pass http://192.168.62.161;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

   #     location / {
 #           root   html;
 #           index  index.html index.htm;
 #       }

        location / {
            proxy_pass http://192.168.62.161;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

上一篇 下一篇

猜你喜欢

热点阅读