Docker php-fpm + nginx / иногда файлы не найдены в php-файле - PullRequest
0 голосов
/ 06 марта 2019

В данный момент я застрял в проблеме.У меня есть сервер, на котором я запускаю несколько докеров.

здесь мне нужно поставить php nginx.

У меня есть файл docker-compose, подобный этому:

version: 2
services:
   web:
      image: nginx:latest
      ports:
         - 'XXXX:80'
         - 'XXXX:443'
      volumes:
         - ./code:./code
         - ./site.conf:/etc/nginx/conf.d/default.conf
      environnement:
         - VIRTUAL_HOST:...
         - LETSENCRYPT_HOST:....
         - LETSENCRYPT_MAIL:....
      networks:
         - default
   php:
      build:
         context: ./php
      volumes:
         - ./code:/code
      networks:
         - default
 networks:
   default:
      external:
         name:webproxy

Из-за моих сетей я получаю автоматику letsencrypt ssl

Мой dockerfile для php:

FROM php:7.2-fpm
RUN apt-get update \
  && apt-get install -y --no-install-recommends libpq-dev \
  && docker-php-ext-install mysqli pdo_pgsql pdo_mysql

Моя конфигурация:

server{
  listen 80
  index index.php index.html
  server_name localhost
  error_log /var/log/nginx/error.log
  access_log /var/log/nginx/access.log
  root /code
  location ~ \.php$ {
     try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
     fastcgi_pass php 9000;
     fastcgi_index index.php;
     include fastcgi_params;
     fastcgi_param SCIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_path_info
  }
}

Моя структура папок:что-то вроде:

- imgFolder
- GameFolder
    - index.html
    - service.php
    - imgFolder
    - cssFolder
- desktop.html
- mobile.html
- main.css

Кажется, что все в порядке, я заставляю мою docker-compose сочинять до -d. То, что мне кажется, все хорошо, так это:.HTML хорошо рендерится.SSL также хорошо применяется

Но иногда (не все время, а что-то наполовину) мой php-файл не был найден по запросу ajax (получил файл 404, не найденный в отладке сети)

Кто-то имел представление о том, почему мой service.php иногда не обнаруживается?

Не знаю, может ли это помочь, но у меня есть точно такой же докер, работающий рядом с этим (другой порт), и нет никаких проблем с моимвызов php файлов.

1 Ответ

0 голосов
/ 07 марта 2019

У вас возникла эта проблема, потому что у вас есть несколько контейнеров с одинаковым именем хоста (php) в одной сети.

Я смоделировал тот же сценарий, и вот результат.

pinging same hostname, but getting different dns resolutions

...