কীভাবে ডকফাইলে চিত্রের নাম সেট করবেন?


299

একটি কাস্টম চিত্র তৈরি করার সময় আপনি চিত্রটির নাম সেট করতে পারেন:

docker build -t dude/man:v2 . # Will be named dude/man:v2

ডকফাইফিলে চিত্রটির নাম সংজ্ঞায়নের কোনও উপায় আছে, সুতরাং আমাকে docker buildকমান্ডটিতে এটি উল্লেখ করার দরকার নেই ?


1
কৌতূহলী যে কারও জন্য, FROM ব্যবহার করে ... যেমন নামটি কার্যকর হয় না
রুফাস

উত্তর:


265

চিত্রটি ট্যাগ করা ডকফাইফিলের মধ্যে সমর্থিত নয়। এটি আপনার বিল্ড কমান্ডে করা দরকার। কার্যকারণ হিসাবে, আপনি একটি ডকার-কম্পোজ.আইএমএল দিয়ে বিল্ডটি করতে পারেন যা লক্ষ্য চিত্রটির নাম সনাক্ত করে এবং তারপরে একটি চালাতে পারে docker-compose build। একটি নমুনা ডকার-কমপোজ.আইএমএল দেখতে ভালো লাগবে

version: '2'

services:
  man:
    build: .
    image: dude/man:v2

এটি বলেছিল, রচনাটি নির্মাণের বিরুদ্ধে একটি চাপ রয়েছে যেহেতু এটি ঝাঁক মোড মোতায়েনের সাথে কাজ করে না। সুতরাং আপনি আপনার প্রশ্নে কমান্ডটি চালিয়ে ফিরে এসেছেন:

docker build -t dude/man:v2 .

ব্যক্তিগতভাবে, আমি আমার ফোল্ডারে একটি ছোট শেল স্ক্রিপ্ট (বিল্ড.শ) দিয়ে তৈরি করতে চাই যা কোনও আরগগুলি পাস করে এবং টাইপিং সংরক্ষণের জন্য সেখানে চিত্রটির নাম অন্তর্ভুক্ত করে। এবং উত্পাদনের জন্য, বিল্ডটি একটি সিআই / সিডি সার্ভার দ্বারা পরিচালিত হয় যা পাইপলাইন স্ক্রিপ্টের ভিতরে চিত্রের নাম ধারণ করে।


302

YML ফাইলটি ব্যবহার না করে কীভাবে কাস্টম নামের সাথে একটি চিত্র তৈরি করবেন:

docker build -t image_name .

কাস্টম নাম সহ একটি ধারক কীভাবে চালাবেন:

docker run -d --name container_name image_name

78
আমি আরও মন্তব্য করতে যাচ্ছি না তবে প্রশ্নটি ছিল "ডকফাইলে চিত্রের নাম কীভাবে সেট করবেন?" "ডকার চিত্রের নাম কীভাবে সেট করবেন?" এই উত্তরটি নিজেই প্রশ্নে ছিল।
নভেটেরটা

68
আমি এটি কয়েকবার ফিরে এসেছি, এবং প্রযুক্তিগতভাবে অফ-টপিক থাকা সত্ত্বেও এই উত্তরটি সাহায্য করেছে
gdbj

7
আপনি যদি Dockerfileনিজের ইমেজটির জন্য চান তেমন নামের সাথে ডিরেক্টরিতে ডিরেক্টরিটি রাখেন তবে আপনি docker build -t $(basename $PWD) .আপনার বিল্ড কমান্ড হিসাবে ব্যবহার করতে পারেন । তারপরে আপনি কমান্ডটি খুঁজে পেতে এবং পুনরায় ব্যবহার করতে "বিল্ড" থেকে সিটিআরএল-আর অনুসন্ধান ব্যবহার করতে পারেন এবং এটি সম্পাদনা করতে হবে না। আপনি যদি এটি চান তবে এটি একটি উপাধিও তৈরি করতে পারেন।
ব্রুনো ব্রোনোস্কি

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

38

আপনাকে যদি একটি নির্দিষ্ট ডকার ফাইলটি উল্লেখ করতে হয় তবে এখানে আরও একটি সংস্করণ রয়েছে:

version: "3"
services:
  nginx:
    container_name: nginx
    build:
      context: ../..
      dockerfile: ./docker/nginx/Dockerfile
    image: my_nginx:latest

তারপরে আপনি শুধু চালান

docker-compose build

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

-7

আপনি উবুন্টু থেকে 'AS' ব্যবহার করে এটি করতে পারেন: 16.04 AS FooImage থেকে AS


6
ASসিনট্যাক্স লক্ষ্য একটি মাল্টি-পর্যায় বিল্ড ব্যবহৃত নাম নির্দিষ্ট করে, এবং এই নামটি জন্য একটি চিত্র স্থানে ব্যবহার করা যেতে পারে COPY --fromযে বহু-পর্যায় বিল্ড মধ্যে বাক্য গঠন। তবে এটি নিজেরাই বিল্ডের জন্য ফলাফলের নাম / ট্যাগ নির্দিষ্ট করে না।
বিএমইচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.