docker — сопоставление ранчо php-fpm портов

Я использую ранчо с этим docker-compose:

version: '2'
volumes:
data: {}
services:
web:
image: nginx:latest
volumes:
- /some_local_dir/services.conf:/etc/nginx/conf.d/site.conf
volumes_from:
- my-service
ports:
- 9082:80
labels:
io.rancher.sidekicks: my-service
my-service:
image: my-service
volumes:
- my-service:/my-service
ports:
- 9001:9000

my-service — это сборка образа на alpine3.6 с установленным php7-fpm

Мой services.conf — это:

server {
root /my-service/web;
server_name my-service.local;

location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass my-service.web:9001;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;

# increase url max size passed to fast CGI interface
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;

internal;
}

error_log  /var/log/nginx/my-service_error.log;
access_log /var/log/nginx/my-service_access.log;
}

И тогда я получаю ошибку:

[ошибка] 10 # 10: * 1 connect () не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиенту: 10.42.0.1, восходящему потоку: «fastcgi: //10.42.94.81: 9001»

Когда я удаляю сопоставление портов, и оставляю порт fpm неоткрытым (9000: 9000)
Все начинает работать

Github помог мне Чтобы найти причину, по которой php-fpm7 не работал в первую очередь, я обновил /etc/php7/php-fpm.d/www.conf в образе my-service, а не по умолчанию

listen = 127.0.0.1:9000

я написал

listen = 9000

Это заставляет вещи работать для 9000: 9000, но для 9001: 9000 — нет ((

Пожалуйста, помогите понять, как я могу переслать fpm на 9001, в моем случае

1

Решение

Кажется, я неправильно использовал конфиги, после записи для владельцев ранчо кореш означает, что мой сервис: 9001 будет открыт для всех внешний контейнеры, в то время как 9000 остается для родительского контейнера.

my-service:
image: my-service
volumes:
- my-service:/my-service
ports:
- 9001:9000

Так что мне вообще не нужно отображать порты, если я не хочу выставлять fpm для внешних контейнеров.

Если есть необходимость работать на 9001, единственный способ — переопределить значения по умолчанию для fpm и запустить его на 9001, или даже более правильный способ — это использовать отдельный пул для приложения.

1

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

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

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