স্ট্যান্ডার্ড_ইনিট_লিনক্স.গো: ১৯০: এক্সিকিউটিভ ইউজার প্রক্রিয়া "এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই" - ডকার


106

আমি যখন উইন্ডোজ 10 এ আমার ডকার চিত্রটি চালাচ্ছি আমি এই ত্রুটিটি পাচ্ছি:

standard_init_linux.go:190: exec user process caused "no such file or directory"

আমার ডকার ফাইলটি হ'ল:

FROM openjdk:8

EXPOSE 8080

VOLUME /tmp

ADD appagent.tar.gz /opt/app-agent
ADD services.jar app.jar
ADD run.sh /run.sh

# Install compiler and perl stuff
RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get install -y gcc-multilib
RUN apt-get install -y perl

# Install Percona Toolkit
RUN apt-get install --yes percona-toolkit
RUN ["chmod", "+x", "/run.sh"]
ENTRYPOINT ["/run.sh"]

স্ক্রিপ্টটি #! / বিন / শ দিয়ে শুরু হবে

#!/bin/sh
set -e

JAVA_OPTS="-Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/urandom"

if [ "${APPD_APP_NAME}" != "" ]; then
JAVA_AGENT="-javaagent:/opt/app-agent/javaagent.jar
fi

exec java ${JVM_OPTS} ${JAVA_OPTS} ${JAVA_AGENT} -jar /app.jar

চেষ্টা করা পদ্ধতি 1: চেষ্টা করুন #! / বিন / এসকে #! / বিন / বাশে পরিবর্তন করা কিন্তু একই ত্রুটি পেয়েছে।

চেষ্টা করা পদ্ধতি 2: ডকার ফাইলে ডস 2 ইউনিক্স যুক্ত করা হয়েছে

RUN apt-get install -y dos2unix
RUN dos2unix /run.sh

উত্তর:


148

নোটপ্যাড ++ ব্যবহার করুন, সম্পাদনা করতে যান -> ইওল রূপান্তর -> সিআরএলএফ থেকে এলএফতে পরিবর্তন করুন।


4
পারফেক্ট! আমার একটি .sh ফাইল যুক্ত ছিল যা আমার ডকফাইফাইল থেকে চালানো হয়েছিল। আমি লাইন এন্ডিংস এবং টা দা প্রতিস্থাপন করেছি। আপনাকে ধন্যবাদ
মিষ্টি চিলি ফিলি

আমি 'সম্পাদনা ট্যাবে' নোটপ্যাড ++ এ এই বিকল্পটি পাইনি তবে আমি উইন্ডোজ (সিআর এলএফ) র নীচে ডানদিকে বোতামটি ক্লিক করে এটি পরিবর্তন করেছি এবং আমি ইউনিক্সে পরিবর্তন করেছি। অনেক ধন্যবাদ!
Tobo,

আমার একই সমস্যা আছে এবং এটি আপনার পরামর্শ হিসাবে সমাধান করুন। আপনাকে অনেক ধন্যবাদ!
সত্যব্লু .82

ধন্যবাদ! এটা ভাল কাজ! আমি একই ইস্যুতে ভুগছিলাম।
আয়রনবো

4
উইন্ডোজে ckan ডকার চিত্রগুলি তৈরি এবং চালানোর চেষ্টা করার সময় আমি এই ত্রুটিটি পেয়েছি। আপনি যদি ক্লোন করা রেপোতে এই সমস্যায় পড়ে থাকেন তবে ক্লোন চলাকালীন কোর.আউটোক্রল্ফ সেটিংটি ব্যবহার করা কার্যকর হতে পারে, যদি হয় তবে এক্সিকিউট করুন git config core.autocrlf input => (deleted the files from the repo; wasn't sure if git reset would reset the newlines) => git reset --hard: github.com/LiveOverflow/PwnAdventure3/issues/11
এমিল জি

66

নীচে হিসাবে প্রবেশ পয়েন্ট পরিবর্তন করুন। এটা আমার জন্য কাজ করেছে

ENTRYPOINT ["sh","/run.sh"]

যেমন টিউমাস্টিক মন্তব্যগুলিতে উল্লেখ করেছেন , ডক্সের সম্পাদনের জন্য প্রথম পরামিতি প্রয়োজন:

ENTRYPOINT এর দুটি ফর্ম রয়েছে:

ENTRYPOINT ["executable", "param1", "param2"] (নির্বাহী ফর্ম, পছন্দসই)

ENTRYPOINT command param1 param2 (শেল ফর্ম)


আমার জন্য কাজ করেছেন। এই ক্ষেত্রে শেল স্ক্রিপ্টে আমাদের #! / Bin / sh যোগ করার দরকার নেই। ENTRYPOINT এ "sh" উল্লেখ করে কাজটি করা হয়েছে
গৌরবময় মোহান্তি

8
"Sh" কেন এবং কখন প্রয়োজন তা আপনি ব্যাখ্যা করতে পারেন? আমি অনেক উদাহরণ ছাড়াই কাজ করতে দেখেছি।
অপস

4
@ অপস ছাড়া "sh", সাধারণ শেল প্রসেসিং উত্স
tuomastik

4
দেখা যাচ্ছে যে আমার ENTRYPOINT স্ক্রিপ্টে আমি /bin/bashশেল ইন্টারপ্রেটার হিসাবে ব্যবহার করছিলাম তবে যেহেতু আমার চিত্রটি আলপাইন ভিত্তিক এটি এর সাথে আসে নি। আমি আমার স্ক্রিপ্ট পরিবর্তন bashদ্বারা shএবং সমস্যা সমাধান।
মরফিউজ

56

alpineছবিটি ব্যবহার করার সময় আমার একই সমস্যা ছিল ।

আমার .shফাইলে নিম্নলিখিত প্রথম লাইন ছিল:

#!/bin/bash

আলপাইন বাশ নেই। সুতরাং লাইন পরিবর্তন

#!/bin/sh

বা বাশ এর সাথে ইনস্টল করুন

apk add --no-cache bash

আমার জন্য সমস্যা সমাধান।


4
এই! অ্যাপ্লিনের ডকার হাব পৃষ্ঠায় গা bold় হওয়া উচিত।
হ্যাশলক

16

আমার ক্ষেত্রে আমাকে ফাইলটির জন্য শেষের লাইনটি পরিবর্তন CRLFকরতে হয়েছিল এবং ত্রুটিটি চলে গেছে।LFrun.sh

আমি আশা করি এটি সাহায্য করে,
কার্স্টেন


4
আমাকে একই ফাইলগুলি বারবার স্থির করে রাখতে হবে। এটি উইন্ডোজ আমাকে ইকোসিস্টেমে রাখতে চায়।
জোনাথন জিতকোভিক্স

@ জোনাথনজিতকোভিটিক্স সম্ভবত আপনার গিট কনফিগারেশন এবং আপনার কোড সম্পাদকের জন্য সেটিংস পরীক্ষা করা উচিত
কিরকোন

10

ধরুন, আলপাইন পাত্রে আপনার বাইনারি চালানোর সময় আপনি এই সমস্যার মুখোমুখি হয়েছেন। আপনার বিনটি তৈরির আগে নিম্নলিখিত পরিবর্তনশীলটি রফতানি করুন

# CGO has to be disabled for alpine
export CGO_ENABLED=0

তারপরে go build


ডকফাইফাইলের মধ্যে এটি হ'ল, গতির বিল্ডিং লাইনের আগে ENV সিজিও_এএনএবিএলডি = 0 যুক্ত করুন। এটি আমার পক্ষে কাজ করেছে।
মাধন গণেশ

সুতরাং ডকফাইফিলে, এটি হওয়া উচিত:RUN export CGO_ENABLED=0 && go build
বিএমডাব্লু

এটিও কার্যকরRUN CGO_ENABLED=0 go build
অ্যালান সেরেব

9

এটি একটি সিআরএলএফ সমস্যা। আমি এটি ব্যবহার করে সমস্যার সমাধান করেছি:

git config --global core.eol lf

git config --global core.autocrlf input

find . -type f -print0 | xargs -0 dos2unix

আপনাকে অনেক ধন্যবাদ! এটা আমার দিন বাঁচায়।
অ্যালেক্স

8

"এই জাতীয় কোনও ফাইল বা ডিরেক্টরি" লিনাক্স থেকে আসছে না এবং আমি নিম্নলিখিত কারণগুলি দেখেছি:

প্রথম কারণটি আসলে আপনার ধারকটির ভিতরে থাকা ফাইলটি নয়। কিছু লোক তাদের ইমেজের সাথে এটি যুক্ত না করে হোস্টের কাছ থেকে কোনও কমান্ড চালানোর চেষ্টা করে। কিছু লোক যে কমান্ডটি চালাতে চায় তার উপরে একটি ভলিউম মাউন্ট করে তাদের কমান্ডকে ছায়া করে। যদি আপনি একই ধারকটি চালান তবে আপনার সাধারণ প্রবেশ / পয়েন্ট / সেন্টিমিডি মানের পরিবর্তে একটি শেল দিয়ে এবং একটি চালান ls /path/to/cmdতবে আপনি দেখতে পাবেন যে এটি বিদ্যমান কিনা।

পরবর্তী কারণটি ভুল কমান্ডটি চালাচ্ছে। এটি প্রায়শই জেসসন / এক্সিকিউট বিন্যাসের সাথে প্রদর্শিত হয় যাতে চালানো কমান্ডটি সঠিকভাবে বিশ্লেষণ করে না। আপনি যদি কোনও কমান্ড চালানোর চেষ্টা করছেন ["app",বা অন্য কিছু অনুরূপ দেখতে পান তবে ডসারের দ্বারা জেসন স্ট্রিংটি পার্স করা হয়নি এবং লিনাক্স কমান্ডটিকে স্ট্রিং হিসাবে পার্স করতে শেল ব্যবহার করার চেষ্টা করছে। আপনি যদি আরগগুলি ভুলভাবে অর্ডার করেন তবে এটিও ঘটতে পারে, উদাহরণস্বরূপ, চালানোর চেষ্টা করা -itএমন একটি চিহ্ন যা আপনি যখন ইমেজটির নাম স্থাপনের আগে ছবিটির নামের পরে পতাকা রাখার চেষ্টা করেছিলেন।

শেল স্ক্রিপ্টগুলির সাহায্যে, এই ত্রুটিটি উপস্থিত হয় যদি #!পাত্রের ভিতরে বিদ্যমান না এমন কোনও কমান্ডের পয়েন্ট সহ প্রথম লাইনটি উপস্থিত হয়। কারও কারও bashকাছে এটি কেবল এমন একটি ছবিতে চালানোর চেষ্টা করছে /bin/sh। এবং আপনার ক্ষেত্রে, এটি স্ক্রিপ্টের উইন্ডোজ লাইনফিড থেকে হতে পারে। আপনার সম্পাদকটিতে লিনাক্স / ইউনিক্স লাইনফিডে স্যুইচ করা এটিকে সংশোধন করবে।

বাইনারিগুলির সাথে, একটি লিঙ্কযুক্ত লাইব্রেরিটি অনুপস্থিত থাকলে এই ত্রুটিটি উপস্থিত হয়। আমি প্রায়শই এটি দেখতে পেয়েছি যখন গো কমান্ডগুলি সংকলিত হয় libcতবে muslকোনও লাইব্রেরি ছাড়াই আলপাইন সহ স্ক্র্যাচ চালায়। আপনাকে সমস্ত অনুপস্থিত লাইব্রেরি অন্তর্ভুক্ত করতে হবে বা আপনার কমান্ডটি স্থিতিশীলভাবে সংকলন করতে হবে। এই লাইব্রেরির লিঙ্কগুলি দেখতে, ldd /your/appআপনার বাইনারিটিতে ব্যবহার করুন।


4
ধন্যবাদ! স্ক্র্যাচ ইমেজে আমার গো অ্যাপ্লিকেশনটির জন্য, সিজিও_ইএনএবিএলডি = 0 ব্যবহার করে পুনর্নির্মাণ করতে হয়েছিল
ম্যানুয়েল রনি

আমার কেস: 1. এক্সেক্টিউটেবল বাইনারি হ'ল আল্পাইন থেকে বিল্ড, তবে বেস ইমেজ যে চলমান গো কমান্ডটি ডেবিয়ান, সুতরাং ত্রুটি ঘটেছে।
inix

4

নোটপ্যাড ++ ব্যবহার করে এলএফ দিয়ে সিআরএলএফ প্রতিস্থাপন করা হচ্ছে

  1. নোটপ্যাড ++ এর সন্ধান / প্রতিস্থাপন বৈশিষ্ট্যটি এই প্রয়োজনীয়তাটি বেশ সুন্দরভাবে পরিচালনা করে। কেবল পরিবর্তিত কথোপকথনটি (CTRL + H) সামনে আনুন, প্রসারিত অনুসন্ধান মোড (ALT + X) নির্বাচন করুন, “\ r \ n” অনুসন্ধান করুন এবং “\ n” দিয়ে প্রতিস্থাপন করুন:
  2. সমস্ত প্রতিস্থাপন হিট (ALT + A)

ডকার চিত্রটি পুনর্নির্মাণ করুন এবং চালনা করুন আপনার সমস্যার সমাধান করা উচিত।


4

আমি আমার প্রতিনিধির কারনে মন্তব্য করতে অক্ষম, কিন্তু আমি শুধু যোগ করতে চেয়েছিলাম: VSCode ব্যবহারকারীদের জন্য , আপনি ক্লিক করে এলএফ করার CRLF লাইন শেষা w শ পরিবর্তন করতে পারেন CRLF স্থিতি দন্ডে, তারপর নির্বাচন এলএফ এবং ফাইল সংরক্ষণ করুন।

আমার একই সমস্যা ছিল এবং এটি এটি সমাধান করেছে। ভিএসকোড অনুসরণ করার পদক্ষেপগুলি


3

একটি অনুরূপ ত্রুটি যেমন:

standard_init_linux.go:211: exec user process caused "no such file or directory"

যদি কোনও চিত্র যে আর্কিটেকচারের জন্য নির্মিত হয়েছিল তা যদি আপনার সিস্টেমের সাথে মেলে না happen উদাহরণস্বরূপ, arm64কোনও x86_64মেশিনে নির্মিত কোনও চিত্র চালানোর চেষ্টা করা এই ত্রুটিটি তৈরি করতে পারে।


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


0

আমি এই সমস্যার সমাধানটি আমার সেটিংসকে vscode এ সেট করে।

  1. ফাইল
    1. পছন্দসমূহ
      1. সেটিংস
        1. টেক্সট সম্পাদক
          1. নথি পত্র
          2. ইওল - to n এ সেট করুন

শ্রদ্ধা

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