Unix soketini docker birimi aracılığıyla paylaşma - izin verilmedi


18

Soketimi web sunucumla php5-fpmbir birim üzerinden paylaşmaya çalışıyorum nginx. Fpm ve nginx farklı kaplarda çalışıyor ve soket dosyasını fpm'den yerleştirdiğim paylaşılan bir birim aracılığıyla çalışmasını istiyorum.

2014/04/13 10:53:35 [crit] 33#0: *1 connect() to unix:/container/fpm/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.8.2, server: docker.dev, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/container/fpm/run/php5-fpm.sock:", host: "docker.dev"

Zaten 777 izinleri ayarlama ve grup değişen çalıştı php5-fpm.socketetmek www-data.

Fpm konteyner dockerfile

FROM ubuntu:13.10

RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y php5-cli php5-common
RUN apt-get install -y php5-fpm php5-cgi

ADD ./php-fpm.conf /etc/php5/fpm/php-fpm.conf
ADD ./pool.d/www.conf /etc/php5/fpm/pool.d/www.conf
ADD ./php.ini /etc/php5/fpm/php.ini

CMD ["/usr/sbin/php5-fpm"]

Nginx konteyner dockerfile

FROM ubuntu:13.10

RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y nginx

ADD ./test.php /var/test/test.php
ADD ./test.html /var/test/test.html
ADD ./nginx.conf /etc/nginx/nginx.conf
ADD ./site /etc/nginx/sites-enabled/test

EXPOSE 80

CMD ["/usr/sbin/nginx"]

Ben erişebilir test.htmlancak erişirken test.phpben 502 Hatalı Ağ Geçidi olsun.

Birimleri birimlerle paylaşırken izinlerle ilgilenmem gereken başka bir şey var mı?


Bu kapları nasıl başlatıyorsunuz?
cpuguy83

İçeren dizindeki izinleri kontrol edin .
Aryeh Leib Taurog

Yanıtlar:



12

Şimdi 2015 ve Michael'ın bahsettiği çekirdek yamasını şimdi kararlı çekirdeğe dönüştürdüğünü varsayıyorum. Bir php-fpm ve diğeri nginx bir unix soket ile konuşurken 2 docker konteyner çalışma örneği var.

Bkz. Https://github.com/brad-jones/conductor/tree/master/example-project

Çalışmanın anahtarı soketteki izinleri açmaktı.

Ör: listen.mode = 0777in /etc/php-fpm.d/www.conf

Listen.owner & listen.group'un neye ayarlandığı önemli değildi. Soketin tamamen sınırsız olması gerekiyordu, sanırım çünkü bir kaptaki bir kullanıcı, başka bir kapta aynı ada sahip olsa bile, yine de farklı bir kullanıcı olarak kabul ediliyor.


5
Sınırlı deneyimime göre docker, kullanıcılar için ad aramaları yapamaz veya bunun yerine kapsayıcılık mimarisini etkilemez. kaptaki kullanıcının kullanıcı kimliği önemli olan tek şeydir. Sınırlı izinlerle tekrar test etmeye çalışırsanız, UID'nin kapsayıcı içinde ve dışında eşleştiğinden emin olun.
ThorSummoner

0

İçinde /var/test/test.php ./test.php ADD fpm kabın

Php görüntülenmesi için yorumlanmalıdır, değil mi?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.