Udostępnianie gniazda unixowego przez wolumin dokera - odmowa dostępu


18

Próbuję udostępnić swoje php5-fpmgniazdo przez wolumin na moim nginxserwerze internetowym. Fpm i nginx działają w różnych kontenerach i chcę, aby działały przez udostępniony wolumin, w którym umieszczam plik gniazda z fpm.

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"

Próbowałem już ustawić uprawnienia na 777 i zmienić grupę php5-fpm.socketna www-data.

Plik dokowania kontenera fpm

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"]

Plik Docker kontenera nginx

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"]

Mogę uzyskać dostęp, test.htmlale podczas uzyskiwania dostępu test.phpotrzymuję 502 Bad Gateway.

Czy jest coś jeszcze, o co muszę dbać o uprawnienia podczas udostępniania rzeczy za pośrednictwem woluminów?


Jak zaczynasz te kontenery?
cpuguy83

Odpowiedzi:



12

Jest teraz 2015 i zakładam, że łatka na jądro, o której wspomina Michael, teraz trafiła do stabilnego jądra. Mam działający przykład 2 kontenerów dokujących, jednego z php-fpm, a drugiego z nginx rozmawiającymi ze sobą przez gniazdo unix.

Zobacz: https://github.com/brad-jones/conductor/tree/master/example-project

Kluczem do tego było jednak otwarcie uprawnień do gniazda.

Np .: listen.mode = 0777w /etc/php-fpm.d/www.conf

Wydawało się, że nie miało znaczenia, na co ustawiono listen.owner i listen.group. Myślę, że gniazdo musiało być całkowicie nieograniczone, ponieważ użytkownik w jednym kontenerze, nawet jeśli ma taką samą nazwę w innym kontenerze, jest nadal uważany za innego użytkownika.


5
Z mojego ograniczonego doświadczenia doker nie jest w stanie wyszukiwać nazw użytkowników, a raczej nie uwzględnia to architektury konteneryzacji. wydaje się, że najważniejszy jest identyfikator użytkownika w kontenerze. Jeśli spróbujesz ponownie przetestować z ograniczonymi uprawnieniami, upewnij się, że identyfikator UID jest zgodny w kontenerze i poza nim.
ThorSummoner,

0

DODAJ ./test.php /var/test/test.php w kontenerze fpm

Php musi zostać zinterpretowany, aby zostać wyświetlony, prawda?

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.