2017-01-31 14 views
5

Oto mój doker-komponować:

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/" 

Kiedy uruchamiam go wewnątrz powłoki, w katalogu Döcker-compose.yml, otrzymuję:

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

i kompozycja rozpoczyna się od pustej pamięci podręcznej.

nie widzę żadnych błędów w pliku, jak widać tutaj: https://docs.docker.com/compose/environment-variables/

+0

Co się stanie, jeśli uruchomisz 'env | grep PWD' z tej samej powłoki? – BMitch

+0

@BMitch Otrzymuję normalną nazwę PWD:/home/user/... i OLDPWD = ... –

+0

I to jest dokładnie ta sama powłoka, której użyto do uruchomienia polecenia docker-compose? Nie uruchomiłeś go z jakimś exec, za pomocą jakiegokolwiek harmonogramu, etc? Ponieważ kiedy uruchomię coś podobnego lokalnie, nie mogę odtworzyć tego błędu pod bash. – BMitch

Odpowiedz

3

Nie trzeba ${PWD} dla tego, można po prostu zrobić ścieżkę względną i komponować będzie go rozwinąć (jedna z głównych różnic między komponować ścieżki i te przetwarzane przez 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/" 

Co do tego, dlaczego komponowanie nie wyświetla tej zmiennej, zależy to od powłoki. Skomponuj wyeksportowaną zmienną środowiskową, zawartość pliku .env i flag wiersza poleceń do komendy docker-compose. Jeśli każde z nich pojawi się puste dla zmiennej, otrzymasz to ostrzeżenie.

+2

Z jakiegoś powodu Docker dla systemu Windows zostaje pomieszany z katalogami względnymi. Podejście $ {PWD} działa lepiej. –

+0

I; m przy użyciu Docker komponować z podsystemem Linux systemu Windows. Mogę odnieść się do faktu, że ścieżki względne (jak './Config/nginx') nie działają i daje błąd' not a directory'. Przynajmniej dla mnie. Użycie '$ {PWD}' zamiast '.' rozwiązuje problem – boyd

Powiązane problemy