zoukankan      html  css  js  c++  java
  • react使用docker时多环境支持

    1.添加env.sh,用于接收外部参数,动态添加至config.js中

    #!/bin/sh
    
    echo "" >> ${CONFIG_FILE_PATH}/config.js
      
      echo "window._env="${CE}";" >> ${CONFIG_FILE_PATH}/config.js
     
    echo "" >> ${CONFIG_FILE_PATH}/config.js
    
    
    # disable broswer cache
    sed -i "s/config.js?v=[0-9]*/config.js?v=$(date +'%s')/g" ${CONFIG_FILE_PATH}/index.html
    
    # exec CMD
    exec "$@"

    2.定义Dockerfile,添加启动命令,在docker启动时执行env.sh

    # 使用node版本12.18.2
    FROM node:10.21.0
    
    # 进入code文件夹,如果没有则会生成,并进入文件夹
    WORKDIR /code
    # 将当前内容 放入code文件夹
    ADD . /code
    
    # 执行指令
    RUN npm config set registry https://registry.npm.taobao.org/ && npm install && npm run build && npm install -g http-server
    
    ENV CONFIG_FILE_PATH /code/build
    ENV _env=$CE
    COPY ./env.sh /env.sh
    # Ensure convert envs to window._env
    ENTRYPOINT ["sh", "/env.sh"]
    
    # 暴露容器端口 9093
    EXPOSE 9093
    
    # 当执行docker run的时候会执行以下shell 脚本。
    CMD http-server ./build -p 9093

    3.添加构建及发布docker命令

    version="1.0.0"
    echo $version
    docker build -t 192.168.10.89:8008/jmgo/oa.wap:$version .
    docker tag 192.168.10.89:8008/jmgo/oa.wap:$version 192.168.10.89:8008/jmgo/oa.wap:latest
    docker push 192.168.10.89:8008/jmgo/oa.wap:latest
    docker push 192.168.10.89:8008/jmgo/oa.wap:$version

    4.在index.html中添加config.js引用

    5.构建发布后拉取最新docker,运行时传入参数变量

    docker rm -f wap_oa
    docker pull 192.168.10.89:8008/jmgo/oa.wap:latest
    docker run -d -p 9093:9093 -v /home/oa.wap/logs:/logs --privileged=true --restart=always -e CE="prod" --name wap_oa 192.168.10.89:8008/jmgo/oa.wap:latest
  • 相关阅读:
    新闻发布系统之 登陆注销
    readonly和const的区别
    c#中文件流的读写
    解决jsp两种提交方式乱码 的方法
    B/S 和 C/S两种架构
    App.config的典型应用
    接口实现多态
    Spring概念
    在Spring的核心配置文件applicationContext.xml中配置事务,主要配置三大方面:事务管理器、事务通知和定义事务性切面。
    乱码问题解决方案
  • 原文地址:https://www.cnblogs.com/wishonline/p/13594232.html
Copyright © 2011-2022 走看看