2016-02-14 15 views
5

finde ich ein Problem habe, wenn mehrere Behälter mit Docker-compose zu starten versuchen:Ausgabe mit Docker compose: Container-Befehl nicht

Dockerfile:

FROM nginx:1.9 
ADD ./nginx-sites/default /etc/nginx/sites-available/default 

Docker-compose.yml:

version: "2" 
services: 
    web: 
    build: . 
    ports: 
     - "80:80" 
    volumes: 
     - ./src:/var/www 
    links: 
     - fpm 
    fpm: 
    image: php:7-fpm 
    volumes: 
     - ./src:/var/www 

Wenn ich docker-compose up verwenden, um die Anwendung zu starten, erhalte ich folgende Fehlermeldung:

ERROR: Container command not found or does not exist. 

Würde mich etwas helfen mit diesem Problem.

+0

Ich fing gerade an, das zu betrachten, da ich das gleiche Problem hatte. Wenn Sie den Volume-Abschnitt von Ihrem fpm-Dienst entfernen, startet es? (natürlich ohne die php-fpm zugänglichen files, aber nur aus interessengründen) – TomLingham

+0

yeah. Ohne den Volume-Bereich unter fpm startet es normal. –

+1

tatsächlich, wenn ich die Volumes als "./src:/var/www/html" (für beide Web-und FPM-Dienste), startet die Anwendung, aber ich bin nicht in der Lage, etwas über localhost zugreifen. –

Antwort

12

Wie in den Kommentaren auf die ursprüngliche Frage erwähnt die php: fpm Bild erfordert es Volumen /var/www/html zu setzen ist.

Wenn Sie ein anderes Verzeichnis verwenden möchten, können Sie das umgehen, indem Sie Ihre eigene Dockerfile verwenden (basierend auf php: fpm). Das Dockerfile möchte dies:

FROM php:fpm 

WORKDIR /var/www 

Es scheint, wie die workdir auf die gewünschte Einstellung dir nicht den Trick.

Dann in Ihrem docker-compose.yml würden Sie mit dieser Dockerfile anstelle der Verwendung der php: fpm Bild direkt erstellen.

version: "2" 
services: 
    # ... 
    fpm: 
    build: ./path/to/dockerfile 
    volumes: 
     - ./src:/var/www 
+0

Dies sollte die richtige Antwort sein! Die aktuell markierte Antwort ist falsch. – uptownhr