中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

教你使用如何docker部署淘寶rap2服務

發布時間:2020-09-03 03:25:02 來源:腳本之家 閱讀:431 作者:_糊一笑 欄目:服務器

什么是rap2

先來說說起因,在上一個星期的分享會上,談到前后端聯調上,有同事提到了rap2,特意去了解了一下,覺得使用這個東西來進行前后端的接口聯調來真是太方便了,對比我們之前公司內部開發的API Cloud來說,我更偏向使用rap2

RAP通過GUI工具幫助WEB工程師更高效的管理接口文檔,同時通過分析接口結構自動生成Mock數據、校驗真實接口的正確性,使接口文檔成為開發流程中的強依賴。有了結構化的API數據,RAP可以做的更多,而我們可以避免更多重復勞動。

教你使用如何docker部署淘寶rap2服務

上面是摘自https://github.com/thx/RAP淘寶阿里媽媽對rap1的描述,看了圖一下子就能明白,后端制定API返回數據格式,前端通過接口地址在線mock,避免了前后端因為進度不一致而出現單方面等待的現象。

使用rap2

可以直接使用淘寶提供的在線服務來生成在線的接口地址,通過申請一個賬號后,即可在里面進行接口的編寫、測試等等...這里不再贅述。

教你使用如何docker部署淘寶rap2服務

部署自己的rap2服務

因為rap2在github上面已經開源,而且也提供了部署方案,這里講一下自己是如何使用docker來進行部署的。

前提

  1. 安裝docker
  2. 安裝docker-compose

涉及到的兩個開源倉庫:

rap2-delos: 后端數據API服務器,基于Koa + MySQL 戳這里

rap2-dolores: 前端靜態資源,基于React 戳這里

或者使用本人的github倉庫 Rynxiao/rap2-docker,已經包含了這兩個倉庫,并加入了配置。

后端部署

在后端部署方面,在github上已經給出了使用docker的部署方面,因此,just follow就好。

> mkdir rap2
> cd rap2
> git clone https://github.com/thx/rap2-delos.git
> cd rap2-delos
> docker-compose up -d

教你使用如何docker部署淘寶rap2服務

運行成功后,需要手動初始化數據庫,我們進入對象的容器來操作:

> docker exec -it rap2-delos sh
> node scripts/init
> exit

重新啟動服務:

> docker-compose down
> docker-compose up -d

教你使用如何docker部署淘寶rap2服務

可以看到暴露出來的端口是38080,我們使用curl命令來測試一下是否成功,如果放回Hello RAP!,就說明后端已經部署好了。

> curl localhost:38080

教你使用如何docker部署淘寶rap2服務

前端部署

前端由于沒有提供對應的docker部署方法,因此只有我自己來嘗試部署了。前端使用的是node進行webpack打包,因此需要一個node的環境,所以我在制作容器的時候需要拉去一個node鏡像。

因為部署前端之前沒有看后端的部署,所以我前端拉取了一個比較新的版本[10.1.0],如果想和后端公用一個node鏡像,可以使用這個node:8.11.1-alpine鏡像。

通過npm run build之后,生成的build文件夾中的只是靜態資源文件,因此我還需要起一個服務器,這里我通過全局安裝http-server來啟動一個服務。

下面是具體的過程:

1. git倉庫拉取

> cd rap2
> git clone https://github.com/thx/rap2-dolores.git
> cd rap2-dolores

2. 創建一個Dockerfile來構建一個新的node版本鏡像

> touch Dockerfile
> vim Dockerfile

Dockerfile中的內容為:

# 拉取10.1.0版本的node鏡像
FROM node:10.1.0

# 維護人
MAINTAINER ryn

# 創建工作目錄
RUN mkdir -p /home/rap2-dolores
WORKDIR /home/rap2-dolores

# 將代碼拷貝至工作目錄
COPY . /home/rap2-dolores

# 全局安裝http-server服務器
RUN npm install -g http-server

# 全局安裝node-sass(一定要帶--unsafe-perm,否則會報錯)
RUN npm install --unsafe-perm -g node-sass

# 安裝依賴
RUN npm install

# 打包
RUN npm run build

3. 使用docker-compose來啟動服務

> touch docker-compose.yml
> vim docker-compose.yml

docker-compose.yml中的內容為:

version: '2.2'

services:
 delores:
  # 容器名稱
  container_name: rap2-dolores
  
  # 通過Dockerfile來構建本地鏡像
  build: .
  
  # 通過images來構建,這里的地址暫不適用,因為src/config中的配置需要根據自己的服務器來動態構建
  # image rynxiao/rap2-dolores-nodejs
  
  # 指定工作目錄
  working_dir: /home/rap2-dolores
  
  # 指定生產環境
  environment:
   - NODE_ENV=production
   
  # 啟動http-server,并映射端口到容器內部8081上
  command: /bin/sh -c 'http-server ./build -s -p 8081'
  privileged: true
  
  # expose port 38081
  ports:
   - "38081:8081"

更改src/config/config.prod.js中的配置,將接口請求地址指向你的后端服務器,以下是我的配置,各位按需更改。

module.exports = {
 serve: 'http://xxx.xxx.xxx.xx:38080',
 keys: ['some secret hurr'],
 session: {
  key: 'koa:sess'
 }
}

注意上面的xxx.xxx.xxx.xxx是你公網的ip地址,如果你通過端口映射做了二級域名的配置,也可以去掉端口號,直接寫你的二級域名就可以了,比如你的二級域名為:http://rap2.xxx.com,那么serve就可以配置為http://rap2.xxx.com

啟動服務

> docker-compose up -d

這一步會執行鏡像的構建,使用docker ps可以查看最新的構建鏡像,使用docker-compose ps可以查看運行的容器

教你使用如何docker部署淘寶rap2服務

至此,我們就可以使用http://{youdomain}:38081來訪問rap2了。

教你使用如何docker部署淘寶rap2服務

nginx做二級域名轉換

你可能希望上使用http://rap2.{youdomain}.com來訪問剛剛我們創建的rap2服務,這里我使用nginx做地址轉換,步驟如下:

在騰訊云/萬網中加一條A類記錄

我使用的是騰訊云,阿里云的添加方法也大致類似,這里請大家自行谷歌。

教你使用如何docker部署淘寶rap2服務

在nginx中增加一個server配置

> cd /usr/local/nginx-1.13.9/conf
> mkdir sites-enabled
> cd sites-enabled
> vim rap2.{youdomain}.com.conf

rap2.{youdomain}.com.conf中的內容如下:

server {
  listen 80;
  server_name rap2.{youdomain}.cn;
  access_log logs/rap2-site.log;

  location / {
   proxy_redirect off;
   proxy_set_header Host $host;
   proxy_set_header X-Real-Ip $remote_addr;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_pass http://127.0.0.1:38081/;
  }
}

其實就是做了一個端口轉換。接下來在nginx.conf中進行引入

# nginx.conf http模塊
include /usr/local/nginx-1.13.9/conf/sites-enabled/*.conf;

# 重啟nginx
nginx -s reload

然后我們就可以使用rap2.{youdomain}.com來訪問rap2服務了

注:{youdomain}替換為自己的域名

小結

算是對之前學習的docker進行練手,通過實踐還是學到了一些自己不太熟悉的領域的一些知識,記錄共勉之。也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

聊城市| 都匀市| 北票市| 宜川县| 黄大仙区| 高淳县| 柘城县| 洮南市| 双鸭山市| 新乐市| 息烽县| 安庆市| 石家庄市| 赤峰市| 平远县| 宁夏| 醴陵市| 寿阳县| 云阳县| 洛宁县| 达州市| 离岛区| 肥东县| 江永县| 深水埗区| 怀仁县| 曲周县| 呼图壁县| 建平县| 澜沧| 扎赉特旗| 井冈山市| 京山县| 修水县| 瑞安市| 涟水县| 太和县| 叶城县| 蓬溪县| 无极县| 浦北县|