如何在 Docker Compose 中配置环境变量?

axin 2024-09-18 167人围观 ,发现0个评论 Docker教程php部署教程网站部署教程Docker有什么用Docker Compose
在 Docker Compose 中可以通过以下几种方式配置环境变量:


一、在 docker-compose.yml 文件中直接定义


  1. 使用 environment 关键字

    • 在服务定义中,可以使用 environment 关键字直接指定环境变量。例如:

yaml
复制
   version: '3'
  services:
    myapp:
      image: myimage       environment:
        VAR1: value1         VAR2: value2


这里为名为 “myapp” 的服务设置了两个环境变量 VAR1 和 VAR2


  1. 使用 env_file 关键字

    • 可以使用 env_file 关键字指定一个包含环境变量定义的文件。例如:

yaml
复制
   version: '3'
  services:
    myapp:
      image: myimage       env_file:
        -.env


假设 .env 文件内容如下:
plaintext
复制
   VAR1=value1
  VAR2=value2


这样就可以从 .env 文件中读取环境变量并应用到 “myapp” 服务的容器中。


二、通过命令行参数传递


  1. 使用 -e 选项

    • 在运行 docker-compose up 命令时,可以使用 -e 选项来传递环境变量。例如:

plaintext
复制
   docker-compose up -d -e VAR1=value1 -e VAR2=value2


这将在启动容器时设置环境变量 VAR1 和 VAR2


三、注意事项


  1. 变量优先级
    • 如果在多个地方定义了相同的环境变量,优先级顺序通常为:命令行参数(-e 选项)> environment 关键字 > env_file 文件。

  2. 敏感信息处理
    • 对于包含敏感信息(如密码、密钥等)的环境变量,应谨慎处理。可以考虑将这些信息存储在安全的地方,如环境变量文件中,并限制对该文件的访问权限。

  3. 变量引用
    • 在环境变量值中,可以使用其他环境变量的引用。例如:

yaml
复制
   version: '3'
  services:
    myapp:
      image: myimage       environment:
        VAR1: value1         VAR2: ${VAR1}-extra


这里 VAR2 的值将被设置为 “value1-extra”。


请关注微信公众号
微信二维码
不容错过
Powered By TOPYUN 云产品资讯