【问题标题】:docker compose with create react app procedure undefined environment variablesdocker compose 与创建反应应用程序未定义的环境变量
【发布时间】:2019-05-30 02:56:22
【问题描述】:

我在 docker-compose.yml 文件中声明环境变量时遇到问题,但是当我尝试读取它们时,我得到“未定义”。

我的步骤:

我用“create react app”创建了一个 React 应用,然后我运行了“eject”(但还没有改变任何东西)。另外,我在 docker 中添加了 Ngix。

然后我创建了一个 Dockerfile 并将其添加到根目录:

FROM node:alpine

WORKDIR '/app'

COPY ./package.json ./

RUN npm i

COPY . .

CMD ["npm", "run", "start"]

然后我创建了 docker-compose.yml 文件:

version: '3'
services:
  nginx:
    restart: always
    build:
      dockerfile: Dockerfile
      context: ./nginx
    ports:
      - '3050:80'
  client:
    build:
      context: ./client
      dockerfile: Dockerfile
      args:
        - MAXIMUM_CAMERAS_COUNT=9
    volumes:
      - /app/node_modules
      - ./client:/app

然后我执行“docker-compose up --build”,它工作正常。
但是当我在应用程序的某个地方做:

console.log('process.env.MAXIMUM_CAMERAS_COUNT:', process.env.MAXIMUM_CAMERAS_COUNT);

我得到“未定义”。

已经尝试过:
- 添加到 Dockerfile:

ARG MAXIMUM_CAMERAS_COUNT
ENV MAXIMUM_CAMERAS_COUNT $MAXIMUM_CAMERAS_COUNT

在 docker-compose.yml:

  args:
    - MAXIMUM_CAMERAS_COUNT=9

-添加到 compose-docker.yml:
environment:
  - MAXIMUM_CAMERAS_COUNT=9

-添加到 compose-docker.yml:
environment:
  MAXIMUM_CAMERAS_COUNT: 9

还有其他想法吗?

【问题讨论】:

    标签: reactjs docker-compose environment-variables create-react-app


    【解决方案1】:

    正如documentation 中所述,您需要在变量前面加上REACT_APP_,所以在您的情况下,它应该是REACT_APP_MAXIMUM_CAMERAS_COUNT。

    【讨论】:

    • 太棒了。很高兴我能帮上忙!
    猜你喜欢
    • 2021-01-24
    • 2021-08-15
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多