ওয়েল্যান্ডের অধীনে আমি কীভাবে কোনও গ্রাফিকাল অ্যাপ্লিকেশন চালাতে পারি?


15

যখন আমি এক্স 11 ডেস্কটপ ব্যবহার করি, আমি $DISPLAYভেরিয়েবল এবং /tmp/X11-unixডিরেক্টরিটি ভাগ করে ডকার পাত্রে গ্রাফিকাল অ্যাপ্লিকেশনগুলি চালাতে পারি । উদাহরণ স্বরূপ:

docker run -ti -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix some:ubuntu xclock

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


কীভাবে আপনার প্রশ্নের উত্তর সঠিকভাবে দেওয়া যায় তা নিশ্চিত নয় (আমি এটি আগে কখনও করিনি) তবে আমার সিস্টেমে ওয়েল্যান্ডের ইউনিক্স ডোমেন সকেটটি /run/user/1000/wayland-0আমার ব্যক্তিগত ডেস্কটপের জন্য রয়েছে।
ব্র্যাচলে

উত্তর:


16

আপনি যেমন বলেছেন যে আপনি ওয়েল্যান্ডের সাথে ফেডোরা 25 চালাচ্ছেন, আমি ধরে নিচ্ছি আপনি জিনোম-ওয়েল্যান্ড ডেস্কটপ ব্যবহার করছেন।

এক্স অ্যাপ্লিকেশন সমর্থন করার জন্য জিনোম-ওয়েল্যান্ড Xwayland চালায়। আপনি জোরগোর সাথে আগের মতো এক্সওয়েল্যান্ড অ্যাক্সেস ভাগ করে নিতে পারেন।

আপনার উদাহরণ কমান্ড মিস করেছে XAUTHORITYএবং আপনি উল্লেখ করেন না xhost। ডকারে থাকা এক্স অ্যাপ্লিকেশনগুলিকে এক্সওয়েল্যান্ড (বা যে কোনও এক্স) অ্যাক্সেস করার অনুমতি দেওয়ার জন্য আপনার এই উপায়গুলির একটি দরকার। এগুলি সমস্ত ওয়েল্যান্ডের সাথে সম্পর্কিত নয় বলে আমি উল্লেখ করি আপনি কীভাবে ডকার পাত্রে জিইউআই অ্যাপ্লিকেশন চালাবেন? কীভাবে ডকারে এক্স অ্যাপ্লিকেশন চালানো যায় সে সম্পর্কে

সংক্ষেপে হিসাবে, xhost সহ দুটি সমাধান:

  1. Xhost এর মাধ্যমে আপনার স্থানীয় ব্যবহারকারীর অ্যাক্সেসের অনুমতি দিন: xhost +SI:localuser:$(id -un)এবং ডকার রান অপশন সহ একটি অনুরূপ ব্যবহারকারী তৈরি করুন:--user=$(id -u):$(id -g)
  2. নিরুৎসাহিত: এর সাথে এক্সে রুট অ্যাক্সেসের অনুমতি দিন xhost +SI:localuser:root

সংশ্লিষ্ট ফাঁদ : এক্স স্বাভাবিকভাবে ভাগ করা মেমোরি (এক্স এক্সটেনশন ব্যবহার MIT-SHM)। ডকারের ধারকগুলি বিচ্ছিন্ন এবং ভাগ করা মেমরির অ্যাক্সেস করতে পারে না। এটি রেন্ডারিং গিটচি এবং র‍্যাম অ্যাক্সেস ব্যর্থতার দিকে নিয়ে যেতে পারে। আপনি ডকার রান অপশন সহ এড়াতে পারেন --ipc=host। IPC নেমস্পেসিং অক্ষম করার সাথে সাথে ধারক বিচ্ছিন্নতা প্রভাবিত করে। তুলনা করুন: https://github.com/jessfraz/dockerfiles/issues/359


চালানোর জন্য Wayland ছাড়া এক্স Docker মধ্যে অ্যাপ্লিকেশন, আপনি gnome-Wayland বা ওয়েস্টন মত একটি চলমান Wayland কম্পোজিটার প্রয়োজন। আপনাকে ওয়েল্যান্ড সকেট ভাগ করতে হবে। আপনি এটি খুঁজে পেয়েছেন XDG_RUNTIME_DIRএবং এর নামটি সঞ্চিত আছে WAYLAND_DISPLAY। যেমন XDG_RUNTIME_DIRকেবল তার মালিকের অ্যাক্সেসের অনুমতি দেয়, আপনার হোস্টের মতো ধারকটিতে একই ব্যবহারকারীর প্রয়োজন। উদাহরণ:

docker run -e XDG_RUNTIME_DIR=/tmp \
           -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
           -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:/tmp/$WAYLAND_DISPLAY  \
           --user=$(id -u):$(id -g) \
           imagename waylandapplication

কিউটি 5 অ্যাপ্লিকেশনগুলিরও প্রয়োজন -e QT_QPA_PLATFORM=waylandএবং এটি দিয়ে শুরু করা আবশ্যকimagename dbus-launch waylandapplication


এক্স এবং ওয়েল্যান্ড অ্যাপ্লিকেশনগুলির জন্য ডকারে এক্স 11 ডকার হ'ল একটি সমাধান in এটি ধারক বিচ্ছিন্নতা সংরক্ষণের বিষয়েও যত্নশীল (এটি উদাহরণস্বরূপ হোস্ট এক্স ডিসপ্লের সাথে ভাগ করে নিলে তা হারিয়ে যায়)।


আমি যে অ্যাপটি চালাতে চাই তা যদি X বা ওয়েল্যান্ড হয় তবে আমি কী নিশ্চিত? আমি কী জেনেরিক কিছু পাস করতে পারি যাতে এটি স্বয়ংক্রিয়ভাবে নির্ধারণ করতে পারে যে এক্সওয়্যাল্যান্ডের প্রয়োজন আছে কিনা?
অক্সভিভি


1
@ এসএইচএন অন্য ওয়েল্যান্ডের কম্পোজিটারে ক্লায়েন্ট হিসাবে ওয়েস্টন চালানো সম্ভব। এই ক্লায়েন্ট ওয়েস্টনের ভিতরে আপনি এক্স অ্যাপ্লিকেশন সহ Xwayland চালাতে পারেন। এক্স x11docker --weston-xwayland imagename application
ডকার

1
এছাড়াও আপনি একটি Wayland ক্লায়েন্ট সরাসরি Xwayland চালাতে পারেন @Shn: Xwayland :20 & sleep 3 && docker run -e DISPLAY=:20 -v /tmp/.X11-unix:/tmp/.X11-unix imagename application। এক্সওয়েল্যান্ড পুরো ডিসপ্লেটি কভার করবে; আপনি এটিকে <সুপারার> <লেফ্টমাউস বাটন> দিয়ে এদিক ওদিক ঘুরিয়ে দিতে পারেন। X11docker সঙ্গে: x11docker --xwayland imagename application
mviereck

1
@ এসএইচএন আপনার যে কোনও ক্ষেত্রে এক্স সার্ভারের প্রয়োজন। হোস্টে এক্স এড়ানোর জন্য আমি এক্স 11 ডকার / এক্সওয়েল্যান্ড সরবরাহ করি । যদি কোনও দিন xpraGTK3 + পাইথন 3 এ পোর্ট করা থাকে তবে এটি বিজোড় উইন্ডো সহ আরও সম্ভাবনা সরবরাহ করবে। Xvfbপাত্রে রেখে অদৃশ্য সেটআপগুলি সম্ভব । বিস্তারিত আলোচনার জন্য আপনি গিথুব এ ইস্যুর টিকিট খুলতে পারেন ।
mviereck

0

আমি গুগল দ্বারা সোমমিলার সুপারিশ করব। এটি আপনাকে Wayland OR X11 অ্যাপ্লিকেশন আরম্ভ করার অনুমতি দেয় এবং সেই সকেটগুলি সরবরাহ করে যা বর্তমান অ্যাপ্লিকেশনগুলির সার্ভারে প্রবেশ করতে সেগুলি সন্ধান করে। https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/sommelier/

কোনও সহজ পদ্ধতিতে যে কোনও সিস্টেমে কাজ করা উচিত কেবল ক্রোমস-এ ক্রাউটন / ক্রস্টিনি নয়।

https://github.com/dnschneid/crouton/wiki/Sommelier-(A-more-native-alternative-to-xiwi)

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