Reactjs Docker从Docker-compose.yml设置环境变量

Reactjs Docker从Docker-compose.yml设置环境变量,reactjs,docker,docker-compose,environment-variables,Reactjs,Docker,Docker Compose,Environment Variables,我有一个简单的例子,我尝试从我的docker compose传递一个变量(最终是一个ENV变量)。它现在似乎不起作用,我也不知道bug在哪里 docker compose.yml version: "3" services: sprintbotmanager: container_name: sprintbotmanager image: sprintbotmanager:latest build: context: . a

我有一个简单的例子,我尝试从我的
docker compose
传递一个变量(最终是一个ENV变量)。它现在似乎不起作用,我也不知道bug在哪里

docker compose.yml

version: "3"
services:
  sprintbotmanager:
    container_name: sprintbotmanager
    image: sprintbotmanager:latest
    build:
      context: .
      args:
        - REACT_APP_API_URL="aabbcc"
    volumes:
      - "/node_modules"
    ports:
      - "80:3000"
    depends_on:
      - sprintbotserver
    environment:
      - CHOKIDAR_USEPOLLING=true
    stdin_open: true
Dockerfile

FROM node:10

MAINTAINER Kuba Wasilewski <jakub.wasilewski@sprint.pl>
 
WORKDIR /usr/src/app
 
COPY package*.json ./
 
RUN npm install
 
ARG REACT_APP_API_URL

ENV REACT_APP_API_URL ${REACT_APP_API_URL}

COPY . .
 
EXPOSE 3000

CMD [ "npm", "start" ]
来自节点:10
维护者库巴·瓦西莱夫斯基
WORKDIR/usr/src/app
复制包*.json/
运行npm安装
ARG REACT\u APP\u API\u URL
ENV REACT_APP_API_URL${REACT_APP_API_URL}
复制
暴露3000
CMD[“npm”,“开始”]

我似乎无法在
docker compose
Dockerfile
之间传递参数。任何建议都将不胜感激:)

我认为问题在于您试图传递容器运行时所需的enivorment变量,但传递变量的方式(通过
args
ARG
)仅在构建过程中可用,如中所述

如果我没记错的话(我没有找到说明这一点的文档,所以我也可能是错的),但我认为您在Dockerfile中正确设置了
ENV
变量,但它被Docker Compose环境变量覆盖

我还没有对此进行测试,但如果这是问题所在,只需将变量添加到docker compose中的
环境中即可,如下所示:

environment:
- CHOKIDAR_USEPOLLING=true
- REACT_APP_API_URL="aabbcc"