【问题标题】:How to use environment variables inside docker .env file?如何在 docker .env 文件中使用环境变量?
【发布时间】:2017-06-12 03:18:46
【问题描述】:

我有一个缓存文件夹,路径存储在环境变量中:$LOCAL_CACHE (export LOCAL_CACHE=/home/me/path/to/any/cache/folder)

现在我想在我的 .env 文件中添加一些额外的文件夹:

我的 .env 文件:

LOCAL_COMPOSER_DIR=${LOCAL_CACHE}/composer
LOCAL_NPM_DIR=${LOCAL_CACHE}/npm
LOCAL_BOWER_DIR=${LOCAL_CACHE}/bower

我的 docker_compose.yml 看起来像这样:

version: '2'
services:
  composer:
    env_file: .env
    image: composer/composer
    volumes:
      - ./src:${APP_ROOT}
      - ${LOCAL_COMPOSER_DIR}:/composer
    working_dir: ${APP_ROOT}

当我使用docker-compose run composer instal. ... 启动服务时,它会因以下错误而停止:ERROR: Named volume "$LOCAL_CACHE"/composer":/composer:rw" is used in service "composer" but no declaration was found in the volumes section.

我不是 shure,但 .env 文件似乎不支持使用变量。

【问题讨论】:

  • 哪个操作系统在运行?操作系统?还是 Linux?
  • 两者(linux和osx)

标签: environment-variables docker-compose


【解决方案1】:

是的。进入.env 文件你不能使用变量。突然但真实。实际适用于 docker compose 版本 1.8。

但是你可以在docker-compose.yml文件中使用变量

volumes:
  - ${LOCAL_COMPOSER_DIR}/${CACHE_DIR}:/composer/${CACHE_DIR}

This answer 建议我们另一种方式。

【讨论】:

  • 有时你有不同的系统和不同的环境变量。我的想法是,规范化 .env.DIST 文件中的环境变量,而不是 docker-compose.yml 中的环境变量。
猜你喜欢
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-12
  • 2020-01-11
  • 2018-12-15
  • 1970-01-01
  • 2016-07-07
相关资源
最近更新 更多