使用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
![](https://img.haomeiwen.com/i14387783/7039bd06e9bc6213.png)
![](https://img.haomeiwen.com/i14387783/a4066374e397fcba.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
以上完成环境搭建,现在开始正式文件的配置
项目结构:
- 在 root 目录下 创建 yapi_demo文件夹(其他位置都行),并创建 docker-compose.yml 文件(代码在下方)
- 在 /root/yapi_demo/nginx/configs 目录下 构建 nginx.conf 文件(此处如果修改,需要修改docker-compose.yml 文件中 nginx 的映射路径)
![](https://img.haomeiwen.com/i14387783/0fcd4218e56c3546.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:如果其他机器想要访问本地虚拟机访问不到的时候,同样可以使用虚拟机映射出去
![](https://img.haomeiwen.com/i14387783/6a9143495483c42d.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;
}
}
}