ডকার ভলিউমের মাধ্যমে ইউনিক্স সকেট ভাগ করা - অনুমতি অস্বীকার করা হয়েছে


18

আমি আমার php5-fpmসকেটটি নিজের nginxওয়েব সার্ভারের সাথে একটি ভলিউমের মাধ্যমে ভাগ করার চেষ্টা করি । এফপিএম এবং এনজিনেক্সগুলি বিভিন্ন ধারকগুলিতে চলছে এবং আমি এফএমপি থেকে সকেট ফাইলটি রাখি এমন একটি ভাগ করা ভলিউমের মাধ্যমে তাদের কাজ করতে চাই।

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"

আমি ইতিমধ্যে 777 করার অনুমতি সেটিং এবং গোষ্ঠীর পরিবর্তন চেষ্টা php5-fpm.socketকরতে www-data

এফপিএম কনটেইনার ডকফায়াইল

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

এনগিনেক্স ধারকটির ডকফেরাইল

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

আমি অ্যাক্সেস করতে পারি test.htmlতবে অ্যাক্সেস করার সময় test.phpআমি পাই 502 খারাপ গেটওয়ে।

ভলিউমের মাধ্যমে স্টাফ ভাগ করে নেওয়ার সময় অনুমতি সম্পর্কে আমার আরও কী যত্ন নেওয়ার দরকার আছে?


আপনি কীভাবে এই পাত্রে শুরু করছেন?
cpuguy83

ধারণকারী ডিরেক্টরিতে অনুমতিগুলি পরীক্ষা করুন ।
আরেহ লাইব বৃষ

উত্তর:


5

ইউনিক্স ডোমেন সকেটের মাধ্যমে যখন বিভিন্ন নেটওয়ার্ক নেমস্পেসে থাকে তখন বিভিন্ন ধারক একে অপরের সাথে কথা বলতে পারে না। এখানে একটি সরকারী কার্নেল প্যাচ রয়েছে যা এটির অনুমতি দেয় তবে আপনি যদি এটি ব্যবহার করেন তবে আপনি নিজেরাই।


12

এটি এখন 2015 এবং আমি অনুমান করি যে কার্নেল প্যাচটি মাইক্রেলের উল্লেখ করা এখন স্থিতিশীল কার্নেলটিতে প্রবেশ করেছে। আমার কাছে পিএইচপি-এফপিএম সহ দুটি ডকারের ধারক এবং অন্যটি এনজিনেক্সের সাথে ইউনিক্স সকেটের মাধ্যমে একে অপরের সাথে কথা বলার একটি উদাহরণ রয়েছে।

দেখুন: https://github.com/brad-jones/conductor/tree/master/example-project

যদিও এটি কাজ করার মূল চাবিকাঠিটি ছিল সকেটের অনুমতিগুলি খুলতে।

উদাহরণ: listen.mode = 0777মধ্যে /etc/php-fpm.d/www.conf

শ্রুত.স্বত্তকারী ও লিসেনগ্রুপটি কী সেট করা হয়েছে তা বিবেচ্য নয়। সকেটটি সম্পূর্ণরূপে সীমিত হওয়া দরকার, আমি অনুমান করি কারণ একটি ধারক ব্যবহারকারীর ব্যবহারকারী, অন্য পাত্রে একই নাম থাকলেও এখনও অন্য ব্যবহারকারী হিসাবে বিবেচিত হয়।


5
আমার সীমিত অভিজ্ঞতায় ডকার ব্যবহারকারীদের জন্য নাম অনুসন্ধান করতে সক্ষম হয় না, বা এটি কনটেইনারাইজেশন আর্কিটেকচারের কারণ হয় না। মনে হচ্ছে কনটেইনার ব্যবহারকারীর uid এর জন্য গুরুত্বপূর্ণ। যদি আপনি সীমাবদ্ধ অনুমতি নিয়ে আবার পরীক্ষা করার চেষ্টা করেন তবে ধারকটির ভিতরে এবং বাইরে ইউআইডি-র ম্যাচটি নিশ্চিত করুন।
থারস্ম্মোনার

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.