docker-compose.yaml如何使用.env文件来定义环境变量
时间: 2023-12-24 15:02:37 浏览: 278
可以在docker-compose.yaml文件所在的目录中创建一个名为`.env`的文件,将要定义的环境变量以`key=value`的形式写入该文件中,比如:
```
DB_NAME=mydatabase
DB_USER=myuser
DB_PASSWORD=mypassword
```
然后在docker-compose.yaml中使用`${VARIABLE}`的语法来引用这些环境变量,比如:
```
services:
db:
image: postgres
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
```
这样,在启动docker-compose时,docker会自动加载`.env`文件中定义的环境变量,并将其传递给相应的服务。需要注意的是,`.env`文件中定义的变量会覆盖系统中已经存在的同名变量。因此,在使用`.env`文件时,需要确保所定义的变量名与系统中没有重复。
相关问题
docker-compose.yaml 环境变量
Docker Compose允许我们在docker-compose.yml文件中设置环境变量。在docker-compose.yml文件中,可以使用.env文件来定义环境变量。比如,在.env文件中定义了REDIS_PASSWORD=ABC123这个环境变量,然后在docker-compose.yml文件中可以通过$REDIS_PASSWORD来引用这个环境变量。例如,可以这样设置REDIS_PASSWORD环境变量:
```
services:
redis:
environment:
- REDIS_PASSWORD=$REDIS_PASSWORD
```
在执行docker-compose命令时,必须在docker-compose.yml所在的目录下执行。可以使用docker-compose -f docker-compose.yml up -d命令来创建并启动容器。使用docker ps -a命令可以查看构建出的镜像。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [【Docker系列】Docker Compose 环境变量](https://blog.csdn.net/weixin_48447848/article/details/122632551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Docker-Compose 与 YAML 配置文件格式](https://blog.csdn.net/duanbaoke/article/details/119238309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
docker-compose.yaml中的变量如何传入
在docker-compose.yaml文件中,可以使用`${VARIABLE}`这样的语法定义一个变量。变量可以在`environment`、`command`和`args`等字段中使用。
要传入变量,可以通过在启动docker-compose时指定环境变量的方式来实现。比如:
```
$ export VARIABLE=value
$ docker-compose up
```
或者可以在docker-compose.yaml中使用`.env`文件来定义环境变量。比如:
```
# .env文件
VARIABLE=value
```
然后在docker-compose.yaml中使用`${VARIABLE}`来引用这个环境变量。
注意:在使用`.env`文件时,要确保`.env`文件位于docker-compose.yaml文件所在的目录。另外,`.env`文件中定义的变量会覆盖系统中已经存在的同名变量。
阅读全文