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"