ডকার: অবৈধ রেফারেন্স ফর্ম্যাট


111

আমি এই টিউটোরিয়ালটি অনুসরণ করছি: https://medium.com/towards-data-s ज्ञान/ number- plate-detection-with-supervisely-and-tensorflow-part-1- e84c74d4382c

এবং তারা ডকার ব্যবহার করে। আমি যখন ডকার চালানোর চেষ্টা করেছি (রান.শ স্ক্রিপ্টের ভিতরে):

docker run \
    -p 8888:8888 
    -v `pwd`/../src:/src \
    -v `pwd`/../data:/data -w /src supervisely_anpr \
    --rm \
    -it \
    bash

আমি ত্রুটি পেয়েছি:

docker: invalid reference format.

আমি ২ ঘন্টা ব্যয় করেছি এবং আমি কী বুঝতে পারি তা সত্যি বুঝতে পারি না। কোন ধারণা সত্যিই প্রশংসা।


4
এটি ব্যবহার করে দেখুনdocker run -p 8888:8888 -v "`pwd`/../src":/src -v "`pwd`/../data":/data -w /src --rm -it supervisely_anpr bash
তরুণ লালওয়ানি

5
@ তরুনলালওয়ানি এবং @ ওলেগের মতো উল্লেখ করেছেন যে আপনাকে --rmএবং -itএর মাঝে runএবং চিত্রের নামটি সরানো দরকার । যদিও ত্রুটি বার্তাটি ব্যাখ্যা করবে না। আপনি কি চিত্রের নামের অক্ষরগুলিতে কোনও বিশেষ এনকোডিং বা আপার কেস নেই কিনা তা পরীক্ষা করে দেখেছেন? আপনার স্নিপেট থেকে অনুলিপি করুন এবং আটকান আমার জন্য কাজ করে, যখন docker run --rm foo! bashআপনার মতো একই ত্রুটি মুদ্রণ করে।
gesellix

4
এর উত্তর পোস্ট করার কথা বিবেচনা করে পরবর্তী লোকের জন্য এটি খুঁজে পাওয়া সহজ
lloiacono

4
আপনি যদি সত্যই শব্দগুলিতে বিভক্ত করতে না চান তবে সর্বদা ডাবল-কোট ডলার বিস্তৃতি। এখানে, "$(pwd)"(আধুনিক রূপের "`pwd`") ব্যবহার করুন । আপনার আদেশ হয়ে যায় docker run -p 8888:8888 -v "$(pwd)"/../src:/src -v "$(pwd)"/../data:/data -w /src supervisely_anpr --rm -it bash
মার্টিন জাম্বন

4
@ গিজেলিক্স আপনাকে ধন্যবাদ নতুন জিনিস শিখার সময় ম্যানুয়ালগুলি থেকে কপি-কাস্টিং কমান্ডগুলি প্রথমে করা উচিত নয়, অন্যদিকে যে কোনও স্নেহযুক্ত দূষিত প্রতীক জড়িত হয়ে গেলে এটি অপ্রত্যাশিত ব্যথা আনতে পারে। এই জাতীয় "ত্রুটি"
two

উত্তর:


96

পাওয়ারশেলে আপনার ${pwd}বনাম ব্যবহার করা উচিত$(pwd)


7
এটিই আমার মাথাটি প্রাচীরে bang
ুকে পড়েছিল

docker run --rm -ti --name zalenium -p 4444:4444 -p 5555:5555 \ -e SAUCE_USERNAME -e SAUCE_ACCESS_KEY \ -v /tmp/videos:/home/seluser/videos \ -v /var/run/docker.sock:/var/run/docker.sock \ dosel/zalenium start --sauceLabsEnabled trueআমার আদেশে কি ভুল? এটিও একই ত্রুটি দিচ্ছে।
পল

তোমাকে অনেক ধন্যবাদ!
অ্যান্ড্রু ব্রেন্নান

... এবং ঠিক $pwdকাজ করে না, যা স্পষ্ট।
টিমো

48

"রান" এর পরে প্রথম যুক্তি যা কোনও পতাকা বা কোনও প্যারামিটার নয় কোনও চিত্রের নাম হিসাবে পার্স করা হয়। যখন পার্সিং ব্যর্থ হয়, এটি আপনাকে রেফারেন্স ফর্ম্যাটটি বলে দেয়, ওরফে চিত্রের নাম (তবে কোনও চিত্র আইডি, পিনড ইমেজ বা অন্য সিনট্যাক্স হতে পারে) অবৈধ। আপনার আদেশে:

 docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash

চিত্রটির নাম "সুপারভাইজালি_আএনআরপি" বৈধ, সুতরাং আপনাকে কমান্ডটি আগে দেখতে হবে। এই ক্ষেত্রে, ত্রুটিটি সম্ভবত pwdকোনও স্থানের সাথে কোনও পাথ আউটপুট করা থেকে সম্ভবত । জায়গার পরে সমস্ত কিছুই আর প্যারামিটারে থাকে না -vএবং ডকার এটিকে চিত্রের নাম হিসাবে পার্স করার চেষ্টা করে। ফিক্সটি হ'ল ভলিউম প্যারামিটারগুলি উদ্ধৃত করা যখন আপনি গ্যারান্টি দিতে পারবেন না এটি ফাঁকা স্থান বা অন্যান্য বিশেষ অক্ষর মুক্ত।

আপনি যখন এটি করেন, আপনি পরবর্তী ত্রুটির মুখোমুখি হবেন, "এক্সিকিউটেবল পাওয়া যায় না"। চিত্রের নামের পরে সমস্ত কিছু পাত্রে ভিতরে চালানোর আদেশ হিসাবে পার্স করা হয়েছে। আপনার ক্ষেত্রে এটি কমান্ডটি চালানোর চেষ্টা করবে --rm -it bashযা প্রায় অবশ্যই ব্যর্থ --rmহবে যেহেতু আপনার চিত্রের ভিতরে বাইনারি হিসাবে উপস্থিত থাকবে না। এটি সমাধানের জন্য আপনাকে প্যারামিটারগুলি পুনঃক্রম করতে হবে:

 docker run --rm -it -p 8888:8888 -v "`pwd`/../src:/src" -v "`pwd`/../data:/data" -w /src supervisely_anpr  bash

আমার স্লাইডগুলিতে এই দুটি ত্রুটি এবং কারণ সম্পর্কে আমি আরও কিছু বিশদ পেয়েছি: https://sudo-bmitch.github.io/preferencesations/dc2018/faq-stackoverflow-lightning.html#29


4
স্লাইড 30 আমার সমস্যার সমাধান করে । সাইগউইনে আমার একটি .sh ফাইল চলছিল। আমি পরিবর্তন # !/bin/bash(নোটিশ মধ্যে স্থান #এবং !করতে #!/bin/bash এবং তারপর End of Line Sequenceথেকে CRLFকরার LF।।। স্লাইড ভাগ করে নেওয়ার জন্য যে সব ছিল আমি করেছিলাম ধন্যবাদ @BMitch
blongho

16

copy-pastedকমান্ড দেওয়ার সময় আমারও একই সমস্যা ছিল । পরিবর্তে, যখন আমি সম্পূর্ণ কমান্ডটি টাইপ করি, এটি কাজ করে!

শুভকামনা ...


4
বাহ, এটি আসলে সহায়তা করেছিল।
মাতজাগ

5
হ্যাঁ, আমার জন্য এটি --nameএডিট করার -কারণে এটি স্বয়ংক্রিয়ভাবে পরিবর্তিত হয়েছিল। ধন্যবাদ আপনি আমার সময় বাঁচিয়েছেন।
রবি পান্ডে

8

আমারও একই সমস্যা ছিল। আমি যে সমস্যাটি করছিলাম $(pwd)সেটির একটি জায়গা ছিল যা ডকারকে ছুটে ফেলেছিল।

ডিরেক্টরি নামটি সেখানে ফাঁকা স্থান না রাখার জন্য পরিবর্তন করুন এবং যদি সমস্যা হয় তবে এটি কাজ করা উচিত


4

যখন আমার কাছে পরিবেশের পরিবর্তনশীল সেট না ছিল তখন আমি এই সমস্যাটি নিয়ে চলে এসেছি।

docker push ${repo}${image_name}:${tag}

repoএবং image_nameসংজ্ঞায়িত tagহয়েছিল কিন্তু ছিল না।

এর ফলস্বরূপ docker push repo/image_name:

যা ছুড়েছিল docker: invalid reference format.


আমারও একই সমস্যা ছিল এবং আমি এটি হারিয়ে যাওয়া পরিবেশের পরিবর্তনশীল রফতানি ট্যাগ = সর্বশেষ
PHZ.fi-Pharazon

docker buildএই ত্রুটিটি আমার সাথে ব্যর্থ হয়েছে FROM ${ORG}/ci-common:${CI_COMMON_VERSION} as builder। এটি পূর্ববর্তীটিতে ARG CI_COMMON_VERION=2(একটি অনুপস্থিত S) একটি সাধারণ টাইপোর কারণে ঘটেছিল , যা আমি অন্য স্ক্রিপ্ট থেকে অনুলিপি করেছিলাম যেখানে এই টাইপ সর্বত্র ছিল এবং এইভাবে সূক্ষ্মভাবে কাজ করছিল।
কোডম্যানএক্স

1

পাওয়া গেছে যে docker-compose configসমস্যাটি কি তা ব্যবহার করে রিপোর্ট করেছেন।

আমার ক্ষেত্রে, একটি এন্ট্রি সহ একটি ওভাররাইড রচনা ফাইল যা কিছুই ওভাররাইড করে না


0

আপনি যখন উত্পাদনে নীচের মতো বিকাশকারী ডকার রচনাটি ব্যবহার করেন তখন এটিও ঘটে। আপনি প্রযোজনায় চিত্র তৈরি করতে চান না কারণ এটি পাত্রে আদর্শকে ভেঙে দেয়। আমাদের ছবি স্থাপন করা উচিত:

  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"

অন্তর্নির্মিত চিত্র ব্যবহার করতে এটি পরিবর্তন করুন:

  web:
    command: /bin/bash run.sh
    image: registry.voxcloud.co.za:9000/dyndns_api_web:0.1
    ports:
      - "8000:8000"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.