2016-02-14 24 views
5

Mam problem, gdy próbuje uruchomić wiele pojemników z Docker-Compose:Problem z Döcker Compose: komenda pojemnik Nie znaleziono

Dockerfile:

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

doker-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 

Gdy używam docker-compose up aby uruchomić aplikację, pojawia się następujący błąd:

ERROR: Container command not found or does not exist. 

Chciałbym pomóc w rozwiązaniu tego problemu.

+0

Po prostu zacząłem na to patrzeć, ponieważ miałem ten sam problem. Usunięcie sekcji woluminów z usługi fpm spowoduje jej uruchomienie? (oczywiście bez plików dostępnych dla php-fpm, ale tylko dla dobra interesu) – TomLingham

+0

tak. bez sekcji objętości pod fpm, uruchamia się normalnie. –

+1

faktycznie, jeśli ustawię woluminy jako "./src:/var/www/html" (dla usług internetowych i fpm), aplikacja zostanie uruchomiona, ale nie mam dostępu do niczego za pośrednictwem localhost. –

Odpowiedz

12

Jak wspomniano w komentarzach do pierwotnego pytania, wymagane jest ustawienie obrazu php: fpm, aby ustawić głośność na /var/www/html.

Jeśli chcesz użyć innego katalogu, możesz to obejść, używając własnego pliku Docker (na podstawie php: fpm). Że Dockerfile chciałby to:

FROM php:fpm 

WORKDIR /var/www 

Wydaje się, że ustawienie WorkDir do żądanego katalogu załatwia sprawę.

Następnie w swoim docker-compose.yml można budować z tego Dockerfile zamiast bezpośrednio używać obrazu php: fpm.

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

To powinna być poprawna odpowiedź! Obecna zaznaczona odpowiedź jest fałszywa. – uptownhr