web-dev-qa-db-fra.com

Docker compose ne trouvera pas la variable d'environnement $ PWD

Voici mon docker-compose:

version: '2'
services:
  couchpotato:
    build:
        context: ./couchpotato
        dockerfile: Dockerfile
    ports:
     - 5050:5050
    volumes:
     - "${PWD}/couchpotato/data:/home/CouchPotato/data/"
     - "${PWD}/couchpotato/config:/home/CouchPotato/config/"

Lorsque je l'exécute à l'intérieur du Shell, dans le répertoire du docker-compose.yml, j'obtiens:

WARNING: The PWD variable is not set. Defaulting to a blank string.

et la composition commence avec PWD étant vide.

Je ne vois aucune erreur dans le fichier, comme on le voit ici: https://docs.docker.com/compose/environment-variables/

17
user6791424

Vous n'avez pas besoin de ${PWD} pour cela, vous pouvez simplement rendre le chemin relatif et le composer le développera (une différence majeure entre les chemins de composition et ceux traités par docker run).

version: '2'
services:
  couchpotato:
    build:
        context: ./couchpotato
        dockerfile: Dockerfile
    ports:
     - 5050:5050
    volumes:
     - "./couchpotato/data:/home/CouchPotato/data/"
     - "./couchpotato/config:/home/CouchPotato/config/"

Quant à savoir pourquoi compose ne voit pas cette variable, cela dépend de votre Shell. Compose recherche une variable d'environnement exportée, le contenu du fichier .env et des indicateurs de ligne de commande pour la commande docker-compose. Si chacun de ceux-ci apparaît vide pour la variable, vous obtiendrez cet avertissement.

20
BMitch