根据分支名称设置环境变量(REACT_APP_BASE_URL)的值/与dockerfile进行反应

时间:2020-05-16 21:37:39

标签: reactjs docker webpack environment-variables

我正在使用Dockerfile进行React项目。

我有不同的分支(开发,测试,演示,阶段)。我应该根据当前分支名称运行不同的base_url。

我为解决此问题所做的事情是:

-在项目目录中创建.env.dev .env.test ...文件,并将这样的环境变量存储在每个创建的环境文件中:

REACT_APP_BASE_URL'https://abc.branch-name.example' 似乎在本地工作正常!

我的脚本: script file

我的dockerfile中的

相关命令:

FROM node:8.11.2 as builder
WORKDIR /my-app

COPY . .

RUN npm rebuild node-sass
RUN npm run build

(不允许使用docker-compose.yaml)

当我推送代码时,构建器运行dockerfile并停留在(生产模式)时,它会忽略在本地工作的环境变量。

问题是我如何让docker不要忽略我的环境变量并检测当前分支?

  • webpack插件可以解决此问题吗?

我不想更改不是我创建的docker cuz中的任何内容,而且我对docker不熟悉,所以请让我知道是否可以使用webpack修复此问题。

任何建议都会有所帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

尝试一下:

FROM node:8.11.2 as builder
WORKDIR /my-app

COPY . .

ARG REACT_APP_BASE_URL
ENV REACT_APP_BASE_URL $REACT_APP_BASE_URL


RUN npm rebuild node-sass
RUN npm run build

使用示例

import React, { Component } from 'react';

class Example extends Component {
  render() {
    console.log(REACT_APP_BASE_URL);
    return (
      <div>
        <p>Example</p>
      </div>
    );
  }
}

export default HelloWorld;

希望有用。

相关问题