Nginx - запускает php файлы в другом контейнере Docker

Я использую автоматический образ докера для php-fpm и nginx ( https://hub.docker.com/r/tobi312/rpi-php/ и https://hub.docker.com/r/tobi312/rpi-nginx/) работает на Raspberry Pi с libreelec на вершине.

Контейнер php успешно запускается с открытым портом 9000, выполнив следующую команду:

docker run --name php -v /var/www/restTools:/var/www/html -d 3dd6ff8c0d58

После этого я запустил nginx-контейнер так:

docker run --name nginx -d -p 8081:80 --link php:9000 -v /var/www/restTools:/var/www/html 0d90cc6eb00f

Оба контейнера работают, но nginx не выполняет php-файлы, он просто предлагает их для загрузки.

Через некоторое время я попытался зафиксировать детали подключения к php-контейнеру через default.conf добавляя -v /var/www/.config/nginx:/etc/nginx/conf.d:ro в команду.

Выдержка из default.conf:

root /var/www/html;

location / {
    root /var/www/html;
    index index.html index.htm index.php;
}

location ~ \.php$ {
    root /var/www/html;
    fastcgi_pass php:9000;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    fastcgi_param REMOTE_ADDR $http_x_real_ip;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    include fastcgi_params;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
}

Что мне не хватает?

1 ответ

Вы пытаетесь использовать (не рекомендуется!) Опцию "ссылки" в Docker, это не является проблемой, но вы должны соблюдать синтаксис

--link <name or id>:alias

Итак, вы должны заменить свой

--link php:9000

с правильным

--link php

вам не нужен псевдоним, потому что вы назвали контейнер fpm так же, как указали его в default.conf. Другая важная вещь - это монтировать папку php files в контейнер fpm, но вы уже сделали это правильно.

Другие вопросы по тегам