我有一个缓存文件夹,路径存储在一个环境变量中:$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.
我不是很好但看起来,.env文件不支持使用变量。
答案 0 :(得分:0)
是。进入.env
文件,您无法使用变量。突然但真实。 Docker的实际编写版本1.8。
但您可以将变量用于docker-compose.yml
文件,如
volumes:
- ${LOCAL_COMPOSER_DIR}/${CACHE_DIR}:/composer/${CACHE_DIR}
This answer建议我们采用另一种方式。