Nodejsプロジェクトはdockerの中でどのようにdev、st、生産などの環境に切り替えて配置しますか?

1880 ワード

プロジェクトは主にdev、st、uautなどの環節を経験してから生産に本格的に展開されます.異なる環境については、データベース構成、逆エージェント構成など、異なる構成がある.ほとんどの項目は環境変数構成によって、dev、st、ual、prdなどの環境を区別できます.Nodejsプロジェクトもこのような方式で切り替えができます.
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に異なる環境における異なる逆エージェントの配置が簡単に実現される.