当前位置: 首页 > news >正文

Docker安装YApi

目录

  • 0、Docker 环境准备
  • 1、数据库准备 MongoDB
  • 2、启动 YAPI
  • 3、官网教程

0、Docker 环境准备

Docker 容器之间网络互通需要使用 docker network create yapi 创建一个自定义网络

docker network create yapi

1、数据库准备 MongoDB

YAPI 的数据库是 MongoDB,准备镜像并启动容器如下:

  1. 备份 mongoDB 到宿主机,需要使用下面命令创建存储卷
docker volume create mongo-data
  1. 拉取镜像,国内服务器提供商网络问题,可能会拉取多次才能成功
docker pull mongo:latest
  1. 启动 MongoDB
# 启动 MongoDB,其中 -e 指定 MONGO_INITDB_ROOT_USERNAMEMongoDBROOT 用户名,MONGO_INITDB_ROOT_PASSWORDMongoDBROOT 用户密码
docker run -d \--name mongodb \--restart always \--net=yapi \-p 27017:27017 \-v mongo-data:/data/db \-e MONGO_INITDB_DATABASE=yapi \-e MONGO_INITDB_ROOT_USERNAME=yapipro \-e MONGO_INITDB_ROOT_PASSWORD=yapipro1024 \mongo
  1. 查看 MongoDB 容器的启动情况
docker ps -a
  1. 进入 MongoDB 容器,从第 4 步查看 MongoDB 容器可以获取到容器 id,以下示例使用 2c46d9f59874 代表 MongoDB 的容器 id
 docker exec -it 2c46d9f59874 /bin/sh
  1. 进入 MongoDB 容器后,进入 mongo cli
mongo localhost:27017

进入 MongoDB 的 mongo cli 后,执行以下语句进行初始化库表

use admin;
db.auth("yapipro", "yapipro1024");

创建 yapi 数据库

use yapi;

创建给 yapi 使用的账号和密码,限制权限

db.createUser({user: 'yapi',pwd: 'yapi123456',roles: [{ role: "dbAdmin", db: "yapi" },{ role: "readWrite", db: "yapi" }]
});

退出 Mongo Cli

exit

退出容器

exit

2、启动 YAPI

在宿主机的当前目录,根据自己修改创建一个 YAPI 配置文件 config.json(在当前文件下vi)

 {"port": "3000","adminAccount": "hexiaohei1024@gmail.com","timeout":120000,"db": {"servername": "mongo","DATABASE": "yapi","port": 27017,"user": "yapi","pass": "yapi123456","authSource": ""},"mail": {"enable": true,"host": "smtp.gmail.com","port": 465,"from": "*","auth": {"user": "hexiaohei1024@gmail.com","pass": "xxx"}}}

拉取最新镜像,启动

docker pull yapipro/yapi:latest

初始化数据库表

docker run -d --rm \--name yapi-init \--link mongodb:mongo \--net=yapi \-v $PWD/config.json:/yapi/config.json \yapipro/yapi \server/install.js

初始化管理员账号在上面的 config.json 配置中 hexiaohei1024@gmail.com,初始密码是 yapi.pro,可以登录后进入个人中心修改

docker run -d \--name yapi \--link mongodb:mongo \--restart always \--net=yapi \-p 3000:3000 \-v $PWD/config.json:/yapi/config.json \yapipro/yapi \server/app.js

验证 yapi 启动是否成功
http://192.168.121.128:3000
自行修改用户名和密码
在这里插入图片描述

3、官网教程

https://hub.docker.com/r/yapipro/yapi

相关文章:

Docker安装YApi

目录0、Docker 环境准备1、数据库准备 MongoDB2、启动 YAPI3、官网教程0、Docker 环境准备 Docker 容器之间网络互通需要使用 docker network create yapi 创建一个自定义网络 docker network create yapi1、数据库准备 MongoDB YAPI 的数据库是 MongoDB,准备镜像…...

springboot自定义参数解析器

为什么要自定义参数解析器呢? 因为很多项目每次获取用户信息,需要重复从请求头中获取token,用token再去redis或是sql中去拿到存储的计本对象,再将获取到的Json数据,转化为我们需要的对象等代码,作为一名程…...

Python Unittest ddt数据驱动

1、数据驱动介绍: ddt.ddt(类装饰器,申明当前类使用ddt框架)ddt.data(函数装饰器,用于给测试用例传递数据),支持传python所有数据类型:数字(int,…...

Vue自定义组件遇到分页传输数据不正确解决办法

测试环境 Vue3 Element Plus 遇到问题 <el-table:data"tableData">...其他el-table-column<template #default"scope">// 自定义组件<my-button name"编辑" :id"scope.row.id"/ ></template></el-table&…...

ABAP 辨析CO|CN|CA|NA|CS|NS|CP|NP

1、文档说明 本篇文档将通过举例&#xff0c;解析字符的比较运算符之间的用法和区别&#xff0c;涉及到的操作符&#xff1a;CO|CN|CA|NA|CS|NS|CP|NP 2、用法和区别 用法总览 以下举例&#xff0c;几乎都使用一个字符变量和一个硬编码字符进行对比的方式&#xff0c;忽略尾…...

RK3568平台开发系列讲解(设备驱动篇)Pinctrl子系统详解

🚀返回专栏总目录 文章目录 一、pinctrl子系统结构描述二、重要的概念三、主要的数据结构和接口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢我们知道在许多soc内部包含有多个pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。Linux…...

ROS小车研究笔记:二维SLAM建图简介与源码分析

ROS提供了现成的各类建图算法实现。如果只是应用的话不需要了解详细算法原理&#xff0c;只需要了解其需要的输入输出即可。 1 Gmapping Gmapping使用粒子滤波算法进行建图&#xff0c;在小场景下准确度高&#xff0c;但是在大场地中会导致较大计算量和内存需求 Gmapping需要…...

番外9:使用ADS对射频功率放大器进行非线性测试1(以IMD3测试为例)

番外9&#xff1a;使用ADS对射频功率放大器进行非线性测试1&#xff08;以IMD3测试为例&#xff09; 一般可以有多种方式对射频功率放大器的非线性性能进行测试&#xff0c;包括IMD3、ACPR、ACLR等等&#xff0c;其中IMD3的实际测试较为简单方便不需要太多的仪器。那么在ADS中…...

车载软件背景(留坑)

目前&#xff0c;车载软件已经成为汽车电子系统中不可或缺的一部分。随着汽车制造商不断增加车载软件的功能和性能&#xff0c;车载软件的市场规模也在不断扩大。据市场研究公司 Grand View Research 预测&#xff0c;到2025年&#xff0c;全球车载软件市场规模将达到190亿美元…...

Hadoop-MapReduce

Hadoop-MapReduce 文章目录Hadoop-MapReduce1 MapRedcue的介绍1.1 MapReduce定义1.2 MapReduce的思想1.3MapReduce优点1.4MapReduce的缺点1.5 MapReduce进程1.6 MapReduce-WordCount1.6.1 job的讲解2 Hadoop序列化2.1 序列化的定义2.2 hadoop序列化和java序列化的区别3 MapRedu…...

ChatGPT来了,软件测试工程师距离失业还远吗?

小伙伴们前一段是不是都看到过ChatGPT的相关视频&#xff0c;那它到底是什么&#xff1f;对软件测试行业会有什么影响&#xff1f; 今天汇智妹就用一篇文章来给大家讲清楚。 一、ChatGPT是什么&#xff1f; 简单来说&#xff0c;ChatGPT是一款人工智能聊天机器人&#xff0c;…...

【项目实战】Linux服务管理 之 开启/关闭防火墙

一、service命令是什么&#xff1f; service命令用于对系统服务进行管理&#xff0c;比如 启动&#xff08;start&#xff09;停止&#xff08;stop&#xff09;重启&#xff08;restart&#xff09;查看状态&#xff08;status&#xff09; service命令本身是一个shell脚本…...

OSS存储使用之centOS系统ossfs挂载

以CentOS7系统为例 下载CentOS系统支持的ossfs工具的版本&#xff0c;以下载CentOS 7.0 (x64)版本为例&#xff0c;可以通过wget命令进行安装包的下载 wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm 也可以通过yum命令来进行安装包的下载 sud…...

【项目实战】SpringBoot多环境(dev、test、prod)配置

一、三套环境介绍 1.1 开发环境(dev) 开发环境是程序猿们专门用于开发的服务器,配置可以比较随意 为了开发调试方便,一般打开全部错误报告。 1.2 测试环境(test) 一般是克隆一份生产环境的配置 一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。 有些…...

Laravel框架01:composer和Laravel简介

Laravel框架01&#xff1a;composer和Laravel简介一、Composer介绍二、创建Laravel项目三、Laravel目录结构四、Laravel启动方式一、Composer介绍 composer 是PHP中用来管理依赖关系的工具。类似于Javascript的NPM。composer官网&#xff1a;https://getcomposer.org/安装结束…...

【bug】Transformer输出张量的值全部相同?!

【bug】Transformer输出张量的值全部相同&#xff1f;&#xff01;现象原因解决现象 输入经过TransformerEncoderLayer之后&#xff0c;基本所有输出都相同了。 核心代码如下&#xff0c; from torch.nn import TransformerEncoderLayer self.trans TransformerEncoderLayer…...

【LeetCode】剑指 Offer(8)

目录 题目&#xff1a;剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 24. 反转链表 - …...

安装MySQL数据库

安装MySQL数据库 获取软件&#xff1a;https://dev.mysql.com/downloads/mysql/ 下载完成后进行解压操作 若安装目录里没有my.ini配置文件&#xff0c;则需要新建一个my.ini的配置文件。 编辑my.ini配置文件&#xff0c;将配置文件中的内容修改成下面内容 [client] # 设置…...

手写Android性能监测工具,支持Fps/流量/内存/启动等

App性能如何量化:如何衡量一个APP性能好坏&#xff1f;直观感受就是&#xff1a;启动快、流畅、不闪退、耗电少等感官指标&#xff0c;反应到技术层面包装下就是&#xff1a;FPS&#xff08;帧率&#xff09;、界面渲染速度、Crash率、网络、CPU使用率、电量损耗速度等&#xf…...

Java知识复习(三)Java IO

1、IO流 IO流&#xff1a;数据传输过程类似于水流&#xff0c;故称IO流 IO流的的40多个类都是从4个抽象类基类中派生出来的&#xff0c;前者是字节&#xff0c;后者是字符 InputStream/Reader:所有的输入流的基类OutputStream/Writer:所有输出流的基类 2、字符流和字节流的区…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...