2017-11-04 3 views
0

Beschreibung

ich einen Docker Behälter mit diesemDatei nicht gefunden - Nginx in Docker

nginx.conf

server { 
    listen 80; 
    index index.php index.html; 
    root /var/www/public; 

    location/{ 
     try_files $uri /index.php?$args; 
    } 

    location ~ \.php$ { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass app:9000; 
     fastcgi_index index.php; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_param PATH_INFO $fastcgi_path_info; 
    } 
} 

Docker-compose.yaml

haben
version: '2' 
services: 

    # The Application 
    app: 
    build: 
     context: ./ 
     dockerfile: app.dockerfile 
    working_dir: /var/www 
    volumes: 
     - ./:/var/www 
    environment: 
     - "DB_PORT=3306" 
     - "DB_HOST=database" 

    # The Web Server 
    web: 
    build: 
     context: ./ 
     dockerfile: web.dockerfile 
    working_dir: /var/www 
    volumes_from: 
     - app 
    ports: 
     - 85:80 

    # The Database 
    database: 
    image: mysql:5.6 
    volumes: 
     - dbdata:/var/lib/mysql 
    environment: 
     - "MYSQL_DATABASE=homestead" 
     - "MYSQL_USER=homestead" 
     - "MYSQL_PASSWORD=secret" 
     - "MYSQL_ROOT_PASSWORD=secret" 
    ports: 
     - "33062:3306" 

volumes: 
    dbdata: 

Der Docker scheint zu bauen und erfolgreich

docker-compose up -d 
docker_app_1 is up-to-date 
docker_database_1 is up-to-date 
Recreating docker_web_1 ... 
Recreating docker_web_1 ... done 

zu starten, aber ich wurde immer

Datei nicht gefunden.


Fragen

Wie würde man dies weiter gehen über und zu debuggen?


Ich bin offen für alle Vorschläge in diesem Moment.

Alle Hinweise/Vorschläge/Hilfe zu diesem werden sehr geschätzt!

+0

Würde es Ihnen etwas ausmachen, Ihre Docker-Compose-Datei zu teilen? – Sergiu

+0

@Sergiu: Wie gewünscht, schließe ich meine ** docker-compose.yaml ** in die Post ein. – ihue

Antwort

1

Ihr Container mit Docker exec -es xxxxxx bash

beginnen, sobald Sie tun, dass Sie im Inneren des Behälters sein. Überprüfen Sie nun Ihre Dateien, wenn sie sich an dem Ort befinden, an dem Sie sie gemäß Ihrer Docker-Compose-Datei platzieren.

+0

Was ist xxxxxx? Ist es eine Art Docker-ID? oder pid? – ihue

1

Alle Volumes und andere Verzeichniseinstellungen verweisen idealerweise auf denselben Speicherort. In deiner nginx.conf hast du root/var/www/public; aber in deinem yal verwendest du/var/www. Das könnte ein Problem sein.

Was Schritte zu gehen, können Sie überprüfen, was Sie da Verzeichnisse verwendet tatsächlich durch den Befehl mit dem folgenden Befehl, nachdem Sie Ihre Docker-compose.yml Datei spin up: docker-compose exec yourServiceName sh

ersetzen yourServiceName mit jedem Service, den Sie habe in deinem yaml definiert. So App, Web oder Datenbank in Ihrem Yaml oben. Und dieser Befehl bringt Sie in die Shell (sh) des spezifizierten Containers. Sie können auch sh durch andere Befehle ersetzen, um andere Aktionen mit Ihrem Container auszuführen.

Verwandte Themen