一效床、使用docker創(chuàng)建yapi容器
1.先安裝docker,可用docker version查看docker版本
[root@localhost ~]# docker version
Client:
Version: 17.12.1-ce
API version: 1.35
Go version: go1.9.4
Git commit: 7390fc6
Built: Tue Feb 27 22:15:20 2018
OS/Arch: linux/amd64
Server:
Engine:
Version: 17.12.1-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.4
Git commit: 7390fc6
Built: Tue Feb 27 22:17:54 2018
OS/Arch: linux/amd64
Experimental: false
2.從docker倉庫拉取Yapi鏡像docker pull命令(拉取鏡像(鏡像地址https://hub.docker.com/r/silsuer/yapi/))
[root@localhost ~]# docker pull silsuer/yapi
Using default tag: latest
latest: Pulling from silsuer/yapi
1be7f2b886e8: Pull complete
6fbc4a21b806: Pull complete
c71a6f8e1378: Pull complete
...
3.使用鏡像實例并運行容器权谁,--name是指定容器名剩檀,-dit是指定后臺運行容器,并返回容器id
或者-it旺芽,指在當(dāng)前窗口以偽終端進入容器沪猴,這里如果只用-d,容器啟動后就會馬上停止)甥绿,-p是指端口映射(主機端口:容器端口字币,27017是數(shù)據(jù)庫端口,9090是yapi初始化配置端口共缕,3000是yapi實際運行端口)
[root@localhost ~]# docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash
3d3a94296f11c725ff091d52acb2e2a4bdb19d55354a0725f1e8b742c0a93ce7
備注:如果想要更改默認端口可這樣寫洗出,如下
[root@localhost ~]# docker run --name yapi -dit -p XXXXX:27017 -p 9090:9090 -p XXXX:3000 silsuer/yapi bash
27017是mongo的默認端口,3000是yapi的默認端口
4.查看當(dāng)前正在運行的容器图谷,docker ps
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3d3a94296f11 silsuer/yapi "bash" 25 minutes ago Up About a minute 0.0.0.0:3000->3000/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:27017->27017/tcp yapi
5.進入容器翩活,有兩種方式:docker attach yapi (exit退出容器后,容器停止運行)或者docker exec -it yapi bash(exit退出容器后便贵,容器依舊運行)
[root@localhost ~]# docker attach yapi(容器id/容器名字)
root@3d3a94296f11:/# ------(這就是偽終端菠镇,進入容器后鍵入才顯示)
[root@localhost ~]# docker exec -it yapi(容器id/容器名字) bash
root@3d3a94296f11:/# ------(這就是偽終端,進入容器后鍵入才顯示)
二承璃、容器中部署Yapi利耍,以下命令是在容器中執(zhí)行
1.啟動MongoDB,Yapi部署需要數(shù)據(jù)庫的依賴盔粹。(上面pull的鏡像中帶有mongodb隘梨,版本是v3.6.3)
root@3d3a94296f11:/# service mongodb start
* Starting database mongodb [ OK ]
2.Yapi需要Git支持,需要先升級Git源(如果不先安裝git直接部署yapi的話湖出現(xiàn)錯誤的)
root@3d3a94296f11:/# apt-get update
Ign:1 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Get:3 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 Release [3457 B]
...
3.安裝git舷嗡,中間會需要輸入y同意安裝
root@3d3a94296f11:/# apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
...
安裝過程中可能會出現(xiàn)幾個error轴猎,不用管正常現(xiàn)象进萄。
4.查看升級后的git版本
root@3d3a94296f11:/# git --version
git version 2.7.4
5.啟動Yapi服務(wù)進行部署配置捻脖,會有如下提示
root@3d3a94296f11:/# yapi server
在瀏覽器打開 http://0.0.0.0:9090 訪問。非本地服務(wù)器中鼠,請將 0.0.0.0 替換成指定的域名或ip
/bin/sh: 1: xdg-open: not found
啟動后可婶,提示你在瀏覽器打開 http://0.0.0.0:9090 訪問,我用的阿里云服務(wù)器兜蠕,訪問http://0.0.0.0:9090是不可能成功的扰肌,我這里是訪問http://ip:9090才可顯示
6.使用本地瀏覽器打開:http://IP:9090或者http://0.0.0.0:9090,如下圖
7.配置完成后熊杨,點擊開始部署曙旭,如下圖
備注:如果有報錯盗舰,根據(jù)部署日志上的信息查找原因蹋笼。我在安裝的時候有如下一個錯誤
Error: (node:952) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
這個錯誤是因為mongo版本的問題晤锹,這個不用管,可以正常使用毁靶。
8.部署成功后剂习,查看命令窗口蛮位,顯示如下
...
added 345 packages in 53.839s
依賴庫安裝完成,正在初始化數(shù)據(jù)庫mongodb...
> yapi@1.3.22 install-server /my-yapi/vendors
> node server/install.js
log: mongodb load success...
初始化管理員賬號成功,賬號名:"admin@admin.com"鳞绕,密碼:"ymfe.org"
部署成功失仁,請切換到部署目錄,輸入: "node vendors/server/app.js" 指令啟動服務(wù)器, 然后在瀏覽器打開 http://127.0.0.1:3000或者http://ip:3000(放開3000端口) 訪問
9.根據(jù)上面信息提示们何,記住賬戶名和密碼萄焦,按ctrl+c停止安裝,切換到部署目錄(/my-yapi/)冤竹,輸入:"node vendors/server/app.js" 指令拂封。
root@3d3a94296f11:/# cd /my-yapi/
root@3d3a94296f11:/my-yapi# node vendors/server/app.js
log: the server is start at 127.0.0.1:3000
log: mongodb load success...
10.在瀏覽器中輸入:http://ip:3000或者http://127.0.0.1:3000,(安全組放開3000端口,如果你更改了默認端口就是用更改后的端口)使用上面記住的賬號密碼就可以登錄了鹦蠕,如下圖
備注1:現(xiàn)在的yapi進程不是后臺啟動的冒签,如果按ctrl+c退出,那么yapi也會關(guān)掉钟病,所以使用nohup將yapi放置后臺運行:
root@3d3a94296f11:/my-yapi# node vendors/server/app.js
log: the server is start at 127.0.0.1:3000
log: mongodb load success...
^C
root@3d3a94296f11:/my-yapi# nohup node /my-yapi/vendors/server/app.js 2>&1 &
[1] 91
root@3d3a94296f11:/my-yapi# nohup: ignoring input and appending output to 'nohup.out'
root@3d3a94296f11:/my-yapi#
備注2:如果開始是以docker exec -ti yapi bash方式進入的容器萧恕,輸入exit就可以了,以docker attach方式進入的容器肠阱,按ctrl+p+q退出
登錄后的管理界面如下圖