reactjs - 如何在 React 的 Docker-Compose 中配置 .env 文件?
问题描述
我已经.env
在 docker ignore 中添加了,并且在构建图像后环境变量未定义,那么如何在docker-compose.yml
文件中配置这些环境变量
我们是否也应该docker-compose.yml
忽略?
码头工人-compose.yml
version: '3'
services:
client:
build:
context: .
dockerfile: Dockerfile.dev
command: npm start
container_name: testReact
ports:
- "3000:3000"
volumes:
- ./:/app
- /app/node_modules
.env
REACT_APP_CONSTANT = 'MY REACT APP'
.dockerignore
/node_modules
/build
.git
*.md
.gitignore
.env
解决方案
这里的问题是您在使用该.env
文件时没有在 docker-compose.yml 中声明变量。
这.env
是特殊的,如果没有在env_file
小节中声明,它用于替换 docker-compose.yml 中的变量(查看文档以获取更多信息)。
解决方案是添加和environment
分段。例如
version: '3'
services:
client:
build:
context: .
dockerfile: Dockerfile.dev
command: npm start
container_name: testReact
ports:
- "3000:3000"
volumes:
- ./:/app
- /app/node_modules
environment:
- REACT_APP_CONSTANT
注意:您也可以在environment
小节中使用对象表示法。这有助于定义默认值。例如:
environment:
REACT_APP_CONSTANT: ${REACT_APP_CONSTANT:-'another default'}
.env
编辑:顺便说一句,从文件中删除空格。
推荐阅读
- javascript - 在条件语句中使用会话存储
- python - 在 onscreenclick for python 期间如何发生多件事?(龟)
- python - 如何有效地对用于数值积分的多元 sympy 表达式进行 Lambdify
- ios - Swift - 考虑到我可以看到它,无法隐藏或取消隐藏 UIView
- java - 显示队列的元素
- python - 将一层的权重从一个 Huggingface BERT 模型复制到另一个
- sql-server - 基于日历的行扩展
- google-ads-api - 如何找到用于 Google Ads API 的转化操作 ID?
- azure-devops - SonarQube - 无法在对象“dbo.ce_activity”中插入重复键
- css - 如何为 CSS 定义自定义样式标签