Nodejsプロジェクトはdockerの中でどのようにdev、st、生産などの環境に切り替えて配置しますか?
1880 ワード
プロジェクトは主にdev、st、uautなどの環節を経験してから生産に本格的に展開されます.異なる環境については、データベース構成、逆エージェント構成など、異なる構成がある.ほとんどの項目は環境変数構成によって、dev、st、ual、prdなどの環境を区別できます.Nodejsプロジェクトもこのような方式で切り替えができます.
dockerに展開されるnodejsを例にとって、異なる環境において異なる逆エージェントがどのように使用されるかを説明する.
プロジェクト概要:nodejsプロジェクト、expressフレームワークは、dockerに展開され、逆エージェントを使用して異なるプロジェクトのリソースを要求する.
一、逆プロキシ設定
例えば、devを構成する逆エージェントが必要で、dev逆エージェントに特化したファイルを新たに作成します.dev-proxy.js
set Proxyでは、expressの一例をパラメータとして導入し、逆エージェントファイルにおいて、プロキシが必要なルートを個別に設定する必要がある.
二、dockerにおける環境変数の設定
プロジェクト展開はKubergnetesにおいて、dev環境に対する配置ファイルの環境変数の構成は以下の通りである.
三、nodeで環境変数を読み込み、逆エージェントを配置する
NodeでKubergnetes設定の環境変数を読み出すのも簡単です.
dockerに展開されるnodejsを例にとって、異なる環境において異なる逆エージェントがどのように使用されるかを説明する.
プロジェクト概要:nodejsプロジェクト、expressフレームワークは、dockerに展開され、逆エージェントを使用して異なるプロジェクトのリソースを要求する.
一、逆プロキシ設定
例えば、devを構成する逆エージェントが必要で、dev逆エージェントに特化したファイルを新たに作成します.dev-proxy.js
module.exports = function(){
var proxy-middle = require('http-proxy-middleware');
this.setProxy=function(app){
app.use('/A',proxy-middle({
target:'http://A.com/',
changeOrigin:true,
pathRewrite:{'^/A':''}
}));
}
}
nodejsではhttp-proxy-middlewareプラグインを使って逆代理を実現します.set Proxyでは、expressの一例をパラメータとして導入し、逆エージェントファイルにおいて、プロキシが必要なルートを個別に設定する必要がある.
二、dockerにおける環境変数の設定
プロジェクト展開はKubergnetesにおいて、dev環境に対する配置ファイルの環境変数の構成は以下の通りである.
apiVersion: v1
kind: Pod
metadata:
name: ips-demo
labels:
domain: DMZ
spec:
containers:
- name: ips-tomcat
image: ipscloud.com/tomcat:1.0
env:
- name: ENV
value: DEV
最後の2行のname:ENV,value:DEVはdev環境におけるENVの配置がDEVであり、ENVの値を読んで判断する.三、nodeで環境変数を読み込み、逆エージェントを配置する
NodeでKubergnetes設定の環境変数を読み出すのも簡単です.
var app = new express();
switch ((process.env.ENV_TYP).toUpperCase()) {
case 'DEV':
ProxyConfig = require('./proxy/dev-proxy');
break;
case 'ST':
ProxyConfig = require('./proxy/st-proxy');
break;
case 'PRD':
ProxyConfig = require('./proxy/prd-proxy');
break;
default:
ProxyConfig = require('./proxy/dev-proxy');
break;
}
new ProxyConfig().setProxy(app);
これにより、nodeに異なる環境における異なる逆エージェントの配置が簡単に実現される.