You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需在docker-compose.yml中定义即可将.env所有环境变量传入容器?

Docker Compose 批量导入.env环境变量到容器

有两种方式可以实现无需逐个定义,直接将.env文件中的所有环境变量传入容器:

方法一:使用env_file字段(推荐)

直接在docker-compose.yml中指定.env文件路径,该文件内的所有变量会自动注入容器环境:

services:
  my_app:
    restart: always
    image: some_image
    hostname: my_app
    env_file:
      - .env
  • 如果.env文件不在当前目录,可填写相对路径(如./config/.env)或绝对路径
  • 此方式会将.env内的所有变量完整传入容器,无需额外配置

方法二:利用环境变量批量传递(适用于已加载到主机环境的变量)

如果已经通过source .env将.env变量加载到当前shell环境,可通过以下方式批量传入容器:

services:
  my_app:
    restart: always
    image: some_image
    hostname: my_app
    environment:
      - "${!ENV*}"
  • 这种方式依赖主机shell已加载对应变量,不如env_file直接可靠,仅作为补充方案

注意:Docker Compose默认会自动读取当前目录的.env文件用于替换compose配置中的变量(如${ENV1}),但这不会自动将变量传入容器,必须通过上述两种方式显式配置。

内容的提问来源于stack exchange,提问作者James Lin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:48:22