Я использую ранчо с этим 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, в моем случае
Кажется, я неправильно использовал конфиги, после записи для владельцев ранчо кореш означает, что мой сервис: 9001 будет открыт для всех внешний контейнеры, в то время как 9000 остается для родительского контейнера.
my-service:
image: my-service
volumes:
- my-service:/my-service
ports:
- 9001:9000
Так что мне вообще не нужно отображать порты, если я не хочу выставлять fpm для внешних контейнеров.
Если есть необходимость работать на 9001, единственный способ — переопределить значения по умолчанию для fpm и запустить его на 9001, или даже более правильный способ — это использовать отдельный пул для приложения.
Других решений пока нет …