O servidor NGINX diz Arquivo não encontrado

1

Estou tentando aprender a arquitetura de microsserviço criando serviços usando lúmen e janela de encaixe. Eu tenho uma estrutura de pastas como esta

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

Cada diretório de serviço é um aplicativo de lúmen Este é o meu arquivo docker-compose.yml parecido com

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"

O gateway.docker

FROM nginx

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

WORKDIR /var/www

meu vhost.conf para nginx

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;
    }
}

Os arquivos docker dos serviços buscam apenas uma imagem 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

Executando o comando docker-compose up -d e navegando para http://localhost:8080 , recebo uma página dizendo "Arquivo não encontrado". Na minha primeira tentativa de arquitetura de microservices, tão fora da minha profundidade com a configuração de toda a configuração, qualquer ajuda ou orientação será muito apreciada.

    
por MrFoh 16.10.2016 / 21:56

1 resposta

1

Eu tive o mesmo problema que tentei imitar as coisas declaradas: aqui . Finalmente, descobri que o problema era que eu tinha que colocar todos esses arquivos no PROJECT ROOT (e não criar um projeto dentro dele!). Depois de fazer essas alterações, consegui trabalhar no meu projeto sem falhas. Espero que isso ajude você também.

    
por 18.12.2016 / 11:10