• 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
  • 相关阅读:
    easy-ui的data-options用法
    my_note
    定时器
    abp安装
    微信小程序
    几个免费的ui 后台
    abp创建实体的方法
    winform 开源项目
    func委托
    for update 锁行和锁表
  • 原文地址:https://www.cnblogs.com/wishonline/p/13594232.html
Copyright © 2020-2023  润新知