web-dev-qa-db-ja.com

NGINXサーバーはファイルが見つかりませんと言います

Lumenとdockerを使用してサービスを構築することにより、マイクロサービスアーキテクチャを学習しようとしています。このようなフォルダ構造があります

./
./base_service
./base_service/base.docker
./user_service
./user_service/user.docker
./auth_service
./auth_service/auth.docker
./gateway.docker
./vhost.conf
./docker-compose.yml

各サービスディレクトリはLumenアプリですこれは私のdocker-compose.ymlファイルです

version: '2'
services:
    gateway:
      build:
        context: ./
        dockerfile: web.docker
      volumes:
        - ./:/var/www
      ports:
        - "8080:80"
      links:
        - base_service
        - auth_service
        - user_service
    base_service:
      build:
        context: ./base_service
        dockerfile: base.docker
      volumes:
          - ./:/var/www
      links:
          - broker
    auth_service:
      build:
        context: ./auth_service
        dockerfile: auth.docker
      volumes:
          - ./:/var/www
      links:
          - broker
    user_service:
      build:
        context: ./user_service
        dockerfile: user.docker
      volumes:
          - ./:/var/www
      links:
          - broker
    broker:
        image: redis:3.0
        ports:
            - "63791:6379"

Gateway.docker

FROM nginx

ADD ./vhost.conf /etc/nginx/conf.d/default.conf

WORKDIR /var/www

nginx用のvhost.conf

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

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

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass base_service: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ファイルはPHP7-fpmイメージをフェッチするだけです

FROM php:7-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
  && docker-php-ext-install mcrypt pdo_mysql

WORKDIR /var/www

docker-compose up -dコマンドを実行してhttp://localhost:8080に移動すると、「ファイルが見つかりません」というページが表示されます。初めてマイクロサービスアーキテクチャを試すので、セットアップ全体の構成について少し深く理解していないので、ヘルプやガイダンスは大歓迎です。

2
MrFoh

私が述べたものを真似ようとしたときにも同様の問題がありました: here 。最後に、これらのファイルをすべてPROJECT ROOTに配置する必要があった(その中にプロジェクトを作成しないでください!)ことが問題であることがわかりました。これらの変更を行った後、プロジェクトに問題なく取り組むことができました。これもお役に立てば幸いです。