2017-01-26 14 views
4

私はキャッシュフォルダを持っているし、パスがevironment変数に格納されます。$LOCAL_CACHE (export LOCAL_CACHE=/home/me/path/to/any/cache/folder)ドッカーの.envファイル内で環境変数を使用するには?

は今、私は私の.envファイル内のいくつかの追加のフォルダを追加したい:

マイ.envファイル:

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

マイdocker_compose.ymlのようになります。私はdocker-compose run composer instal. ...でサービスを開始すると

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

それは次のエラーで停止します:ERROR: Named volume "$LOCAL_CACHE"/composer":/composer:rw" is used in service "composer" but no declaration was found in the volumes section.

私はshureではないようですが、.envファイルは変数の使用をサポートしていません。

+0

OSがオンになっていますか? OSX?またはLinux? – blueskin

+0

両方(linuxとosx) –

答えて

0

はい。 .envファイルには、変数を使用することはできません。突然、しかし真実。ドッカーのための実際のバージョンは、バージョン1.8を構成します。

しかし、あなたは私たちに別の方法を提案

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

This answerようdocker-compose.ymlファイルに変数を使用することができます。

+0

異なる環境変数を持つ異なるシステムを持つことがあります。私の考えは、docker-compose.ymlの内部ではなく、.env.DISTファイル内の環境変数を正規化することでした。 –

関連する問題