1.1.0 • Published 4 years ago

umi-plugin-cool-docker v1.1.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

umi 的插 docker 部署件

支持将项目打包为 docker。并且可以通过 umirc 配置环境变量。环境变量兼容本地开发。独立部署和 docker 部署。

支持通过 umirc 进行 nginx 配置的设置

umi 配置

  {
    docker:{
      /**是否输出调试信息。开启则会打印Dockerfile和nginx配置 */
      debug?:boolean,
      /**环境变量设置 */
      env: {
        /** 后端接口的地址。通过nginx进行代理。注意根据nginx的配置。这里的地址,最后是否有/区别很大哦*/
        apiProxy?: string,
        /**其他环境变量的设置。在umirc里的设置。在docker部署时,可以通过docker的环境变量进行覆盖 */
        [envKey: string]: string|undefined,
      },
      /**nginx配置 */
      nginx?:{
        /**默认nginx会把ajax请求转发到后端,如果设置了api的前缀,那么所以以这个前缀开头的请求都会作为api转发。例如可以设置为/api */
        /** 监听的端口号。默认是7777 */
        listen?:number,
        /**在http之下的额外配置信息 */
        inHttp?:string,
        /**在根location中的额外配置信息 */
        inLocationRoot?:string,
        /**在server之下的额外配置信息 */
        inServer?:string,
      }
      /**chart配置 */
      chart?: {
        /** values.yaml中的k8s_namespace。默认是city-brain */
        k8sNamespace?: string;
        /**values.yaml中的image.registry。默认是172.16.0.58:80 */
        imageRegistry?: string;
        /**values.yaml中的image.repository。默认是city-brain/${name}*/
        imageRepository?: string;
        /**values.yaml中的dns.domain。默认是poc.citybrain.com */
        dnsDomain?: string;
        /**values.yaml中的resources.requests.cpu。默认为100m */
        resourcesRequestsCpu?: string;
        /**values.yaml中的resources.requests.memory。默认为512Mi */
        resourcesRequestsMemory?: string;
        /**values.yaml中的resources.limits.cpu。默认为100m */
        resourcesLimitsCpu?: string;
        /**values.yaml中的resources.limits.memory。默认为512Mi */
        resourcesLimitsMemory?: string;
      }
    }
  }

base 的支持

插件支持在 umirc 中指定 base 的配置。然后会自动通过 base 设置 nginx 的配置。

并且如果在 umirc 中指定了 base,则会自动添加到环境变量。

说明

环境变量的设置,在 js 中,可以通过 window.SYS_ENV 获取。

使用示例

在 umirc 中,增加如下配置

docker:{
    env:{
      apiProxy:'http://localhost:8080/',
      umsUrl:'http://poc.citybrain/ums',
      workflow: 'https://poc.citybrain.com/workflow/flowplatform/todo',
      umsUrl: 'https://test.citybrain.com/ums',
      ssoPrefix: 'admin/api/city',
    }
    chart: {
        k8sNamespace: "city-brain";
        imageRegistry: "172.16.0.58:80";
        imageRepository: "city-brain/basic-personal-fe";
        dnsDomain: "poc.citybrain.com";
        resourcesRequestsCpu: "100m";
        resourcesRequestsMemory: "512Mi";
        resourcesLimitsCpu: "100m";
        resourcesLimitsMemory: "512Mi";
      }
},

js 代码中引用环境变量

console.log(window.SYS_ENV);
console.log(window.SYS_ENV.apiProxy, window.SYS_ENV.umsUrl);

命令

通过 docker 进行编译的命令为

umi dockerBuild
参数:
--push 通过指定push参数。会调用docker push将构建好的镜像推送到镜像库
--namespace=NAMESPACE 通过指定namespace参数,设置镜像的前缀

打包的镜像名和版本号,是从项目的 package.json 中获取的。并且每次构建之前,会通过 npm version patch 命令,将版本号升级。

umi dockerChart

该命令会在项目根目录下新建一个文件夹 chart,文件夹内容如下 chart -templates --Deployment.yaml --ingress.yaml --Service,yaml -chart.resource -Chart.yaml -resource.yaml -values.yaml -values-adapter.yaml