Technology Sharing

  • 首页
  • 资料分享
  • 在线工具
    • 随机密码生成器
  • 介绍
  • RSS
  • privacy
  • 云产品推广
    • 腾讯云
    • 阿里云
Share IT knowledge
  1. 首页
  2. docker
  3. 正文

docker部署YApi (ubuntu)

2022年6月27日 255点热度 0人点赞 0条评论

YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
官方项目仓库 https://github.com/YMFE/yapi

本文通过docker部署YApi,docker仓库地址:https://github.com/fjc0k/docker-YApi

安装docker和docker-compose

卸载旧版本docker

apt-get remove docker docker-engine docker.io containerd runc

安装依赖包

apt-get install ca-certificates curl gnupg lsb-release

添加 Docker 的官方 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

使用以下命令设置稳定存储库

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker和docker-compose

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io  docker-compose

部署YApi

mkdir /home/docker-YApi
cd /home/docker-YApi
git clone https://github.com/fjc0k/docker-YApi.git

修改一些自定义配置(修改管理员账号密码,docker映射的端口8888==》3000)

vim  docker-compose.yml
version: '3'

services:
  yapi-web:
    image: jayfong/yapi:latest
    container_name: yapi-web
    ports:
      - 8888:3000
    environment:
      - YAPI_ADMIN_ACCOUNT=管理员账号
      - YAPI_ADMIN_PASSWORD=管理员密码
      - YAPI_CLOSE_REGISTER=true
      - YAPI_DB_SERVERNAME=yapi-mongo
      - YAPI_DB_PORT=27017
      - YAPI_DB_DATABASE=yapi
      - YAPI_MAIL_ENABLE=false
      - YAPI_LDAP_LOGIN_ENABLE=false
      - YAPI_PLUGINS=[]
    depends_on:
      - yapi-mongo
    links:
      - yapi-mongo
    restart: unless-stopped
  yapi-mongo:
    image: mongo:latest
    container_name: yapi-mongo
    volumes:
      - ./data/db:/data/db
    expose:
      - 27017
    restart: unless-stoppedb

部署容器

docker-compose up -d

查看运行的两个容器yapi-web和yapi-mongo

docker ps -a

配置nginx反向代理到yapi

安装nginx

以下是官方给出的 nginx 安装步骤,详情可参考这里

安装依赖程序

apt install curl gnupg2 ca-certificates lsb-release -y

导入stable nginx 安装源

echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

设置安装源倾向性

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

导入nginx官方签名

curl -o /tmp/nginx_signing.key https://nginx.org/keys/nginx_signing.key

验证下载的文件是否包含正确的密钥

gpg --dry-run --quiet --import --import-options show-only /tmp/nginx_signing.key

输出如下指纹信息则正确:573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62

pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
      573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid                      nginx signing key <signing-key@nginx.com>

最后,将密钥移动到 apt 可信密钥存储(注意“asc”文件扩展名更改):

mv /tmp/nginx_signing.key /etc/apt/trusted.gpg.d/nginx_signing.asc

安装nginx

apt update
apt install nginx -y

设置nginx开机自动启动

systemctl enable nginx

配置nginx反向代理到yapi(下面以yapi.example.com域名为例,当然您也可以通过ip访问)

vim  /etc/nginx/conf.d/yapi.example.com.conf
server {
    listen       80;
    listen       [::]:80;
    server_name  yapi.example.com;
    access_log /var/log/nginx/yapi.example.com/access.log;
    error_log /var/log/nginx/yapi.example.com/error.log;

    index  index.html index.htm index.php;

    location / {
    proxy_pass  http://127.0.0.1:8888;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }


}

创建日志存放目录并授权

mkdir /var/log/nginx/yapi.example.com/
chown  -R nginx:nginx /var/log/nginx/yapi.example.com/

重启nginx

systemctl restart nginx
访问站点测试

http://yapi.example.com

配置https

请参考:https://tech.sharespace.top/certbot/

打赏微海报分享
标签: 暂无
最后更新:2024年1月19日

nico

Linux运维工程师 软考网络工程师 && 软考信息安全工程师

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

nico

Linux运维工程师
软考网络工程师 && 软考信息安全工程师

最新 热点 随机
最新 热点 随机
linux部署JDK环境 [Solved] MariaDB import issue: Error at line 1: Unknown command '\-'. Could not retrieve mirrorlist http://mirrorlist.centos.org/ CentOS 7 Kubernetes如何删除卡在“Terminating”状态的命名空间 解决GitLab Runner签名无效 如何禁用 Ubuntu "Daemons using outdated libraries" 弹出窗口
linux部署JDK环境 Nginx部署ngx_pagespeed模块加速网站 Kubernetes如何删除卡在“Terminating”状态的命名空间 docker部署Elasticsearch集群 Introducing GPTs Rclone:高效、灵活的云存储同步工具
最近评论
woodcockkienzlelsj8o9+73s48g9rr3m0@gmail.com 发布于 10 个月前(07月17日) necessitatibus corporis et odit nam quo harum et c...
RonaldG 发布于 10 个月前(07月07日) Very interesting topic, thank you for putting up.&...
小黑 发布于 1 年前(12月28日) 不错
nico 发布于 2 年前(02月09日) 嘻嘻嘻!!!
Bruse 发布于 2 年前(02月09日) 我来啦!!!
nico 发布于 2 年前(12月10日) 方便查询
Justin 发布于 2 年前(12月10日) 写的很好,谢谢分享!我 Mark 一下~
nico 发布于 3 年前(11月18日) 主题的原因吧
Justin 发布于 3 年前(09月22日) 这篇文章的质量很高呀!写得很详细~ 话说你的文章是隐藏了发布时间吗?
Justin 发布于 3 年前(08月27日) 好家伙,这标题乍一看还以为你打算进军英文技术写作领域了🤓

COPYRIGHT © 2023 Technology Sharing. ALL RIGHTS RESERVED.

备案图标 皖公网安备34132402000202 皖ICP备2023004851号-1