最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你使用如何docker部署淘寶rap2服務(wù)

 更新時(shí)間:2018年08月14日 10:21:31   作者:_糊一笑  
這篇文章主要介紹了教你使用如何docker部署淘寶rap2服務(wù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

什么是rap2

先來說說起因,在上一個(gè)星期的分享會(huì)上,談到前后端聯(lián)調(diào)上,有同事提到了rap2,特意去了解了一下,覺得使用這個(gè)東西來進(jìn)行前后端的接口聯(lián)調(diào)來真是太方便了,對(duì)比我們之前公司內(nèi)部開發(fā)的API Cloud來說,我更偏向使用rap2

RAP通過GUI工具幫助WEB工程師更高效的管理接口文檔,同時(shí)通過分析接口結(jié)構(gòu)自動(dòng)生成Mock數(shù)據(jù)、校驗(yàn)真實(shí)接口的正確性,使接口文檔成為開發(fā)流程中的強(qiáng)依賴。有了結(jié)構(gòu)化的API數(shù)據(jù),RAP可以做的更多,而我們可以避免更多重復(fù)勞動(dòng)。

上面是摘自https://github.com/thx/RAP淘寶阿里媽媽對(duì)rap1的描述,看了圖一下子就能明白,后端制定API返回?cái)?shù)據(jù)格式,前端通過接口地址在線mock,避免了前后端因?yàn)檫M(jìn)度不一致而出現(xiàn)單方面等待的現(xiàn)象。

使用rap2

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

部署自己的rap2服務(wù)

因?yàn)閞ap2在github上面已經(jīng)開源,而且也提供了部署方案,這里講一下自己是如何使用docker來進(jìn)行部署的。

前提

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

涉及到的兩個(gè)開源倉庫:

rap2-delos: 后端數(shù)據(jù)API服務(wù)器,基于Koa + MySQL 戳這里

rap2-dolores: 前端靜態(tài)資源,基于React 戳這里

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

后端部署

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

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

運(yùn)行成功后,需要手動(dòng)初始化數(shù)據(jù)庫,我們進(jìn)入對(duì)象的容器來操作:

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

重新啟動(dòng)服務(wù):

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

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

> curl localhost:38080

前端部署

前端由于沒有提供對(duì)應(yīng)的docker部署方法,因此只有我自己來嘗試部署了。前端使用的是node進(jìn)行webpack打包,因此需要一個(gè)node的環(huán)境,所以我在制作容器的時(shí)候需要拉去一個(gè)node鏡像。

因?yàn)椴渴鹎岸酥皼]有看后端的部署,所以我前端拉取了一個(gè)比較新的版本[10.1.0],如果想和后端公用一個(gè)node鏡像,可以使用這個(gè)node:8.11.1-alpine鏡像。

通過npm run build之后,生成的build文件夾中的只是靜態(tài)資源文件,因此我還需要起一個(gè)服務(wù)器,這里我通過全局安裝http-server來啟動(dòng)一個(gè)服務(wù)。

下面是具體的過程:

1. git倉庫拉取

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

2. 創(chuàng)建一個(gè)Dockerfile來構(gòu)建一個(gè)新的node版本鏡像

> touch Dockerfile
> vim Dockerfile

Dockerfile中的內(nèi)容為:

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

# 維護(hù)人
MAINTAINER ryn

# 創(chuàng)建工作目錄
RUN mkdir -p /home/rap2-dolores
WORKDIR /home/rap2-dolores

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

# 全局安裝http-server服務(wù)器
RUN npm install -g http-server

# 全局安裝node-sass(一定要帶--unsafe-perm,否則會(huì)報(bào)錯(cuò))
RUN npm install --unsafe-perm -g node-sass

# 安裝依賴
RUN npm install

# 打包
RUN npm run build

3. 使用docker-compose來啟動(dòng)服務(wù)

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

docker-compose.yml中的內(nèi)容為:

version: '2.2'

services:
 delores:
  # 容器名稱
  container_name: rap2-dolores
  
  # 通過Dockerfile來構(gòu)建本地鏡像
  build: .
  
  # 通過images來構(gòu)建,這里的地址暫不適用,因?yàn)閟rc/config中的配置需要根據(jù)自己的服務(wù)器來動(dòng)態(tài)構(gòu)建
  # image rynxiao/rap2-dolores-nodejs
  
  # 指定工作目錄
  working_dir: /home/rap2-dolores
  
  # 指定生產(chǎn)環(huán)境
  environment:
   - NODE_ENV=production
   
  # 啟動(dòng)http-server,并映射端口到容器內(nèi)部8081上
  command: /bin/sh -c 'http-server ./build -s -p 8081'
  privileged: true
  
  # expose port 38081
  ports:
   - "38081:8081"

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

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

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

啟動(dòng)服務(wù)

> docker-compose up -d

這一步會(huì)執(zhí)行鏡像的構(gòu)建,使用docker ps可以查看最新的構(gòu)建鏡像,使用docker-compose ps可以查看運(yùn)行的容器

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

nginx做二級(jí)域名轉(zhuǎn)換

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

在騰訊云/萬網(wǎng)中加一條A類記錄

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

在nginx中增加一個(gè)server配置

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

rap2.{youdomain}.com.conf中的內(nèi)容如下:

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/;
  }
}

其實(shí)就是做了一個(gè)端口轉(zhuǎn)換。接下來在nginx.conf中進(jìn)行引入

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

# 重啟nginx
nginx -s reload

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

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

小結(jié)

算是對(duì)之前學(xué)習(xí)的docker進(jìn)行練手,通過實(shí)踐還是學(xué)到了一些自己不太熟悉的領(lǐng)域的一些知識(shí),記錄共勉之。也希望大家多多支持腳本之家。

相關(guān)文章

  • k8s官方鏡像代理加速方式

    k8s官方鏡像代理加速方式

    這篇文章主要介紹了k8s官方鏡像代理加速方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 詳解通過Docker搭建Mysql容器+Tomcat容器連接環(huán)境

    詳解通過Docker搭建Mysql容器+Tomcat容器連接環(huán)境

    本篇文章主要介紹了通過Docker搭建Mysql容器+Tomcat容器連接環(huán)境,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • Docker構(gòu)建python Flask+ nginx+uwsgi容器

    Docker構(gòu)建python Flask+ nginx+uwsgi容器

    這篇文章主要介紹了Docker構(gòu)建python Flask+ nginx+uwsgi容器,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Docker大型項(xiàng)目容器化改造

    Docker大型項(xiàng)目容器化改造

    今天小編就為大家分享一篇關(guān)于Docker大型項(xiàng)目容器化改造,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Docker下安裝zookeeper(單機(jī)和集群)

    Docker下安裝zookeeper(單機(jī)和集群)

    這篇文章主要介紹了Docker下安裝zookeeper(單機(jī)和集群),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • docker安裝jenkins的過程并配置jdk、node和maven

    docker安裝jenkins的過程并配置jdk、node和maven

    本文介紹了如何從拉取Jenkins鏡像開始,通過創(chuàng)建文件夾、準(zhǔn)備JDK、Maven和Node環(huán)境,修改settings.xml支持http協(xié)議,到建立Dockerfile進(jìn)行Jenkins鏡像的二次打包,同時(shí)涉及容器的運(yùn)行、Jenkins初始化設(shè)置、插件安裝和環(huán)境變量配置等步驟,幫助用戶成功部署并運(yùn)行Jenkins服務(wù)
    2024-10-10
  • Docker搭建青龍面板教程(圖文)

    Docker搭建青龍面板教程(圖文)

    青龍面板是一款用于管理和運(yùn)行腳本的Web界面,廣泛應(yīng)用于各類自動(dòng)化腳本的管理,本文主要介紹了Docker搭建青龍面板教程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Docker鏡像的默認(rèn)存儲(chǔ)位置及修改步驟

    Docker鏡像的默認(rèn)存儲(chǔ)位置及修改步驟

    Docker鏡像默認(rèn)存儲(chǔ)在?/var/lib/docker?目錄下,在Linux系統(tǒng)中,這個(gè)目錄通常是在根目錄下,可以使用相應(yīng)命令查看,下面給大家介紹Docker鏡像的默認(rèn)存儲(chǔ)位置及修改步驟,感興趣的朋友一起看看吧
    2024-06-06
  • Docker?ZooKeeper3.4.10集群安裝配置過程

    Docker?ZooKeeper3.4.10集群安裝配置過程

    這篇文章主要介紹了ZooKeeper3.4.10集群安裝配置-Docker,集群部署配置步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 詳解用Docker構(gòu)建MySQL主從環(huán)境

    詳解用Docker構(gòu)建MySQL主從環(huán)境

    這篇文章主要介紹了詳解用Docker構(gòu)建MySQL主從環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論

博客| 天峻县| 铁力市| 沁源县| 石城县| 凤翔县| 叶城县| 福州市| 台北市| 灌云县| 新蔡县| 班戈县| 定边县| 札达县| 彭阳县| 得荣县| 东台市| 祁连县| 罗定市| 涟源市| 获嘉县| 修水县| 肥城市| 寿宁县| 吉林市| 儋州市| 凌海市| 博白县| 海兴县| 桑植县| 铁岭县| 衡山县| 保德县| 兰考县| 辽阳市| 枝江市| 光泽县| 新郑市| 广西| 台山市| 义乌市|