如何使用其他目录下的.env文件运行Docker Compose?
如何指定子目录中的.env文件给根目录的Docker Compose传递参数
完全可以指定子目录里的.env文件为根目录的Docker Compose传递参数,不需要两者位于同一目录。Docker Compose提供了命令行参数来指定任意路径的环境变量文件。
具体操作步骤
在根目录下运行Docker Compose命令时,通过--env-file参数指定子目录中的.env文件路径即可:
docker-compose --env-file ./1234/.env up -d
这条命令会加载1234子目录下的.env文件,其中的ID=1234变量会被注入到你的docker-compose.yml中,自动替换${ID}占位符。
你的配置验证
你的docker-compose.yml配置是可行的:
version: "3.7" services: xyz: image: xyz environment: ID: "${ID}" ports: - "XYZ:XYZ" volumes: - /XYZ${ID}:/data
当执行上述命令后,卷会被映射为/XYZ1234:/data,容器内的ID环境变量也会被设置为1234。
额外注意事项
- 如果根目录也存在
.env文件,通过--env-file指定的子目录文件优先级更高,会覆盖同名变量 - 支持同时指定多个.env文件,使用多个
--env-file参数即可,后指定的文件会覆盖先指定的变量 - 路径可以是相对路径(相对于执行命令的目录)或绝对路径,确保路径正确即可
内容的提问来源于stack exchange,提问作者Vikas 1234
相关产品推荐
相关产品推荐

