牧场主sidekick php-fpm端口映射

时间:2017-11-09 15:11:45

标签: php docker nginx rancher 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连接()失败(111:拒绝连接)连接上游,客户端:10.42.0.1,上游:" fastcgi://10.42.94.81:90​​01&#34 ;

当我删除端口映射时,左fpm端口uncahnged(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,在我的情况下

1 个答案:

答案 0 :(得分:1)

似乎我误用了配置,在为牧场主输入后 sidekick 意味着我的服务:9001将为所有外部容器打开,而9000仍为父母容器

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

所以如果我不想将fpm暴露给外部容器,我根本不需要端口映射。

如果需要在9001上工作,唯一的方法是重新定义fpm的默认值并在9001上启动它,或者甚至更正确的方式 - 是为应用程序使用单独的池。