2017-01-26 2 views
4

Ich habe einen Cache-Ordner und der Pfad wird in einer evironment Variable gespeichert: $LOCAL_CACHE (export LOCAL_CACHE=/home/me/path/to/any/cache/folder)Wie verwenden Sie Umgebungsvariablen in der .env-Datei des Andockers?

Jetzt möchte ich einige zusätzliche Ordner in meinem .env Datei anhängen:

Meine .env Datei:

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

Mein docker_compose.yml sieht wie folgt aus:

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

Wenn ich den Dienst mit docker-compose run composer instal. ... starten Es stoppt mit folgendem Fehler: ERROR: Named volume "$LOCAL_CACHE"/composer":/composer:rw" is used in service "composer" but no declaration was found in the volumes section.

Ich bin nicht sicher, aber es scheint, die .env-Datei unterstützt nicht die Verwendung von Variablen.

+0

welches OS ist eingeschaltet? OSX? oder Linux? – blueskin

+0

beide (linux und osx) –

Antwort

0

Ja. In .env Datei können Sie keine Variablen verwenden. Plötzlich aber wahr. Tatsächliche für Docker komponieren Version 1.8.

Aber Sie können wie

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

This answer legen nahe, uns eine andere Art und Weise Variablen in docker-compose.yml Datei verwenden.

+0

Manchmal haben Sie verschiedene Systeme mit verschiedenen Umgebungsvariablen. Meine Idee war, die Umgebungsvariablen in den .env.DIST-Dateien zu normalisieren und nicht im docker-compose.yml. –

Verwandte Themen