rancher sidekick php-fpm 端口映射
rancher sidekick php-fpm ports mapping
我正在使用 rancher 和这个 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;
}
然后我收到错误:
[error] 10#10: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.42.0.1, upstream: "fastcgi://10.42.94.81:9001"
当我删除端口映射,并保留 fpm 端口未更改时 (9000:9000)
全部开始工作
Github helped me 为了找到 php-fpm7 一开始不工作的原因,我更新了 /etc/php7/php-fpm.d/www.conf -服务图像,而不是默认
listen = 127.0.0.1:9000
我写了
listen = 9000
它使 9000:9000 可以正常工作,但 9001:9000 - 不行((
请帮助了解如何将 fpm 转发到 9001,在我的情况下
似乎我误用了配置,在牧场主条目之后 sidekick 意味着 my-service:9001 将对所有 external 开放容器,而 9000 保留给父容器。
my-service:
image: my-service
volumes:
- my-service:/my-service
ports:
- 9001:9000
所以我根本不需要端口映射,如果我不想将 fpm 暴露给外部容器的话。
如果需要在 9001 上工作,唯一的方法是重新定义 fpm 的默认值并在 9001 上启动它,或者更正确的方法是为应用程序使用单独的池。
我正在使用 rancher 和这个 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;
}
然后我收到错误:
[error] 10#10: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 10.42.0.1, upstream: "fastcgi://10.42.94.81:9001"
当我删除端口映射,并保留 fpm 端口未更改时 (9000:9000) 全部开始工作
Github helped me 为了找到 php-fpm7 一开始不工作的原因,我更新了 /etc/php7/php-fpm.d/www.conf -服务图像,而不是默认
listen = 127.0.0.1:9000
我写了
listen = 9000
它使 9000:9000 可以正常工作,但 9001:9000 - 不行((
请帮助了解如何将 fpm 转发到 9001,在我的情况下
似乎我误用了配置,在牧场主条目之后 sidekick 意味着 my-service:9001 将对所有 external 开放容器,而 9000 保留给父容器。
my-service:
image: my-service
volumes:
- my-service:/my-service
ports:
- 9001:9000
所以我根本不需要端口映射,如果我不想将 fpm 暴露给外部容器的话。
如果需要在 9001 上工作,唯一的方法是重新定义 fpm 的默认值并在 9001 上启动它,或者更正确的方法是为应用程序使用单独的池。