docker — Несколько контейнеров php-fpm позади nginx

Я хочу «докеризировать» три веб-приложения на основе php за nginx как proxy / frontend (также docker, официальный контейнер): собственное приложение, piwik (официальный док-контейнер php-fpm) и следующее облако (официальный док-контейнер php-fpm)

Он отлично работает с одним контейнером php-fpm, но не с двумя или более (/ var / www / html используется как минимум в двух контейнерах php-fpm: nextcloud, piwik). Контейнер БД опущен для упрощения.

докер-compose.yml:

version: '2'

volumes:
nextcloud_data:

services:
web:
image: nginx:stable
ports:
- "80:80"volumes:
- ./conf.d:/etc/nginx/conf.d:ro
volumes_from:
- nextcloud
- piwik # (a)
links:
- nextcloud
- piwik # (a)
restart: always
nextcloud:
image: nextcloud:11.0-fpm
volumes:
- nextcloud_data:/var/www/html
restart: always
piwik:
image: piwik:fpm
restart: always

Nginx-Config conf.d/piwik.conf — вдохновленный Indiehosters:

upstream php-piwik {
server piwik:9000;
}

server {
index index.php index.html;
server_name piwik.example.org;
error_log  /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html;

location / {
try_files $uri $uri/ =404;
}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

location = /favicon.ico {
log_not_found off;
access_log off;
}

location ~ \.php$ {
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
fastcgi_intercept_errors on;
fastcgi_pass php-piwik;
}
}

Конфиг для nextcloud аналогичен (nextcloud.example.org).

Piwik отлично работает с этим параметром (nextcloud не работает, /var/www/html в веб-контейнере содержится материал для пивиков). Когда я закомментирую (а) отмеченные строки и отключу piwik.conf, nextcloud работает нормально, но piwik не работает (/var/www/html содержит материал следующего облака). Моя проблема в том, что они разделяют один и тот же путь (/var/www/html). Как я могу избежать этого с официальными изображениями?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]