ডকারের জন্য কি আরাকল জেডিকে নেই?


15
REPOSITORY          TAG       IMAGE ID       CREATED             SIZE
an-image            1         X              26 seconds ago      279 MB

যখন ডকার চিত্রটি চালানো হবে, নীচের বার্তাটি প্রদর্শিত হবে:

No java installations was detected.
Please go to http://www.java.com/getjava/ and download

যখন ওরাকল জেডিকে মোতায়েন করা হয় তখন ডকারের চিত্রের আকার দ্বিগুণের চেয়ে বেশি হয়!

REPOSITORY          TAG       IMAGE ID       CREATED             SIZE
an-image            2         X              26 seconds ago      666 MB

আলোচনা

যখন "ডকারের জন্য কোনও অরাকল জেডিকে নেই" গুগল করা হয় কেবল ডকার ইমেজের কয়েকটি লিঙ্কই ফিরে আসে। যখন ওরাকল জেডিকে ডকারের ছবিতে স্থাপন করা হয় তখন আকারটি দ্বিগুণের চেয়ে বেশি হয়। আমি ডকারের চিত্রগুলিকে যতটা সম্ভব ছোট রাখতে চাই, তবে ওরাকল জেডিকে মনে হয় চিত্রটির চেয়ে বড় larger

প্রশ্ন

ডকারের জন্য কি আরাকল জেডিকে নেই?


আপনি যদি এটি নিয়ে আলোচনা করতে চান তবে @ চ্যাট আপরা নির্দ্বিধায় উদ্বিগ্ন :)
তেনসিবাই

উত্তর:


20

না Because কারণ আপনি ওরাকল জেডিকে বা জেআরই বিতরণ করতে পারবেন না, ফলস্বরূপ লাইসেন্সটি বিতরণের অনুমতি দেয় না । যখন কোনও তৃতীয় পক্ষ দ্বারা বিতরণ করা হয় (আপনার অ্যাপ্লিকেশন দিয়ে এম্বেড করা হয়) এটি কাজ না করার জন্য সমস্ত দায়বদ্ধতা সেই পক্ষের is এজন্য আপনি কোনও পাবলিক ডকার রেজিস্ট্রিতে বা সেই বিষয়ে কোনও লিনাক্স প্যাকেজ সংগ্রহস্থলে আরাকল জেডিকে / জেআরই খুঁজে পাবেন না।

আপনি আপনার নিজস্ব ইমেজ তৈরি করতে পারেন এবং উবুন্টু / ডেবিয়ানদের জন্য ওয়েবআপড 8টিয়াম / জাভা প্যাকেজ ব্যবহার করে ওরেकल জেডিকে বা জেআরই ইনস্টল করতে পারেন ।

এবং আপনি যদি আলপাইন লিনাক্স ব্যবহার করছেন তবে এই ব্লগ পোস্টটি ব্যাখ্যা করে যে কোনটি নির্ভরতা প্রয়োজন এবং ইনস্টলেশন নির্দেশের জন্য স্ট্যাকওভারফ্লোতে লিঙ্ক

আপডেট : ওরাকলের এখন ডকার স্টোরে একটি অফিসিয়াল ডকার ইমেজ রয়েছে । https://blogs.oracle.com/developers/official-docker-image-for-oracle-java-and-the-openjdk-roadmap-for-containers

লিঙ্ক করুন Docker স্টোর ওরাকল জাভা চিত্র - https://store.docker.com/images/oracle-serverjre-8



আমি এটি দীর্ঘ সময়ের জন্য উপলব্ধ থাকার উপর নির্ভর করব না। যেমনটি আমি লিখেছি, ওরাকল থেকে লাইসেন্স এটি প্রকাশ্যে বিতরণ করতে দেয় না - কেবল ওরাকল বৈধভাবে তাদের জেডিকে বা জেআরই বিতরণ করতে পারে। সুতরাং মূলত, এই সংগ্রহস্থলটি অবৈধ এবং সম্ভবত অদৃশ্য হয়ে যাবে।
ইভজেনি

আপনি যা করতে পারেন তা হল Dockerfileজাভা দিয়ে আপনার নিজস্ব ডকার চিত্র পেতে গিটহাবে তাদের ব্যবহার । উদাহরণস্বরূপ github.com/anapsix/docker-alpine-java/blob/master/8/121b13/jdk/…
ইভজেনি

এবং একবার ডকার চিত্রটি তৈরি হয়ে গেলে আমাকে এটি আমাদের ব্যক্তিগত ডকার রেজিস্টরিতে সংরক্ষণ করার অনুমতি দেওয়া হচ্ছে?
030

1
হ্যাঁ. লাইসেন্সটি বাইনারি আকারে প্রকাশ্যে জেডিকে / জেআরই বিতরণ করতে নিষেধ করে।
ইভজেনি

8

যেহেতু ডকার কোনও অপারেটিং সিস্টেম নয়, তাই ডকারের জন্য জেডিকে নেই।

আমি আপনার প্রশ্নটি বুঝতে পারছি, এটি হ'ল একটি সম্পূর্ণ জেডিকে আপনার ইচ্ছার জন্য খুব বড়, এক্ষেত্রে আপনি কেবল জেআরইতে স্যুইচ করার চেষ্টা করতে পারেন এবং কেবল প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করতে পারেন।

জেডি কে জাভা ডেভলপমেন্ট কিটের সংক্ষিপ্ত রূপ, জাভা রানটাইম ইঞ্জিনের জন্য জেআরই। "অলসতা" দ্বারা প্রতিটি প্রয়োজনীয় নির্ভরতা তালিকাভুক্ত করার জটিলতার কারণে কেউ কেবল প্রয়োজনীয় লাইব্রেরিগুলিতে নামায় না, তবে আপনি যদি ইনস্টলড আকারটি কড়া ন্যূনতম করতে চান তবে এটি সেই উপায়।

আরও ব্যবহারযোগ্য উপায়ে ইনস্টল হওয়া কিছু জিনিস ছিনিয়ে নেওয়া যেতে পারে যা প্রচুর জায়গা নিচ্ছে:

/usr/lib/jvm/jdk1.8.0_101$ du -hs *
776K    bin
4.0K    COPYRIGHT
5.7M    db
208K    include
4.9M    javafx-src.zip
187M    jre
133M    lib
4.0K    LICENSE
2.0M    man
4.0K    README.html
4.0K    release
21M     src.zip
108K    THIRDPARTYLICENSEREADME-JAVAFX.txt
176K    THIRDPARTYLICENSEREADME.txt

এখানে দুটি * src.zip রয়েছে যা মুছে ফেলা যাবে, সেগুলি কার্যকর হবে না এবং আপনি দেখতে পাচ্ছেন যে lib ডিরেক্টরিটি অর্ধেক আকারের এবং এর মধ্যে আপনার কাছে গুচ্ছ জিনিস রয়েছে যা আপনার সত্যিকারের প্রয়োজন নেই:

/usr/lib/jvm/jdk1.8.0_101$ du -hs lib/*
120K    lib/amd64
1.2M    lib/ant-javafx.jar
18M     lib/ct.sym
160K    lib/dt.jar
20K     lib/ir.idl
36K     lib/javafx-mx.jar
400K    lib/jconsole.jar
12K     lib/jexec
60M     lib/missioncontrol
4.0K    lib/orb.idl
8.0K    lib/packager.jar
2.4M    lib/sa-jdi.jar
18M     lib/tools.jar
34M     lib/visualvm

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

ওরাকল জেডিইকে ইনস্টল করার সময় আপনার ডকফাইফিলের মধ্যে একটি জিনিস করা উচিত হ'ল ডাউনলোড করা .tar.gzফাইলটি সরিয়ে ফেলা যা .jarফাইলগুলি ইতিমধ্যে সংকুচিত হওয়ার ফলে ফলাফলের ডিরেক্টরি হিসাবে একই আকারের হয় , তারপ্যারেজ কেবল "প্যাকেজ" করার জন্য সেখানে থাকে।

আপনি পূর্ববর্তী স্তর থেকে ফাইলগুলি সরিয়ে আপনি স্তরটি সরাবেন না এমন স্তরগুলি এড়ানোর জন্য RUNচেইন করে একই কমান্ডে &&আপনাকে এগুলি করতে হবে।


3

ডকারের দ্বারা সরবরাহিত কোনও অফিসিয়াল ওরাকল জেডিকে বাস্তবায়ন নেই। ডকার hub.docker.com এ তাদের নিজস্ব জাভা লাইব্রেরি সমর্থন করতেন, তবে তারা এটি "ওপেনজেডকে-নির্দিষ্ট হওয়ার পরে এটি প্রথম প্রকাশিত হওয়ার পরে" প্রকৃত ওপেনজেডিকে বাস্তবায়নের পক্ষে প্রত্যাখ্যান করেছিল। তাদের যুক্তি:

যেহেতু সমস্ত বৃহত্ প্রবাহের লিনাক্স ডিস্ট্রিবিউশনগুলি তাদের নিজস্ব বিতরণ চ্যানেলগুলিতে ওরাকল জাভা পুনরায় বিতরণ করতে রাজি নয়, আমরা সেগুলি অনুসরণ করতে বেছে নিয়েছি। প্রতিটি বিতরণ কীভাবে ওরাকল জাভা বিতরণ করে না সে সম্পর্কে নীচে উল্লেখগুলি দেখুন।

সুতরাং আপনি যদি নিজের ডকার চিত্রটি যথাসাধ্য ছোট রাখতে চান তবে পরিবর্তে ওপেনজেডিকে ব্যবহার করার বিষয়টি বিবেচনা করুন। এখানে অফিসিয়াল ওপেনজেডিকে ডকফেরফিল সংগ্রহস্থল রয়েছে বা আপনি কেবল ব্যবহার করতে পারেন docker pull openjdk। ওপেনজেডকে for এর জন্য মূল "চালানো সহজ" ডকফেরিলটি নিম্নরূপ (পূর্ববর্তী বাক্যে তালিকাভুক্ত ওয়েবসাইট থেকে নেওয়া):

FROM openjdk:7
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"]

1
কোনও অফিসিয়াল ওরাকল জেডিকে নেই? এটি কিছুটা ভুল বলে মনে হচ্ছে, বা কমপক্ষে ভুলভাবে ভুল লেখা হয়েছে।
ইভজেনি

1
@ এ্যাজজেনি আমি সম্মত, আমি অভিপ্রায়টি গ্রহণ করার বিষয়টি ধরে নিয়েছি: "ওরাকল থেকে ওরাকল জেডিকে সহ কোনও অফিসিয়াল ডকার ইমেজ" নেই, সম্ভবত
জেডিকে

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