如何对所有docker服务使用一个.env

时间:2019-02-19 11:26:25

标签: docker docker-compose

我正在学习Docker,并且对环境有疑问。

项目结构:

  • nginx(Dockerfile)
  • nuxt.js + express.js(Dockerfile)
  • laravel(Dockerfile)
  • mysql(Dockerfile)
  • docker compose

我需要使用docker-compose将所有设置变量保存在根文件夹中。但是laravel需要在其根目录中包含.env文件。

所以我的问题是:是否有一些路径可以将所有设置存储在根目录的一个.env文件中,并且当docker-compose运行时,会将设置提供给所有服务吗?

1 个答案:

答案 0 :(得分:1)

在docker-compose.yml中,您可以为包含.env文件的目录声明卷装载。然后例如从您的laravel应用程序中的该目录中读取。

或者您可以选择使用env_file配置选项来使运行中的进程访问这些变量。

services:
  foo:
    image: foo
    volumes:
      - ./env:/app/env

  bar:
    image: bar
    env_file: ./env/.env

Read more here