ডকার-কমপোজ.আইএমএল-এ প্রবেশদ্বারে কীভাবে যুক্তিগুলি পাস করবেন


159

আমি এই চিত্রটি ব্যবহার করি: ডারপার্সন / সাম্বা

চিত্রটি তার নিজস্ব প্রবেশপথটি সংজ্ঞায়িত করছে এবং আমি এটিকে ওভাররাইড করতে চাই না।

আমাকে প্রবেশের পয়েন্টে যুক্তিগুলি পাস করতে হবে, কেবল ডকারের সাহায্যে সহজ:

docker run ... dperson/samba arg1 arg2 arg3

তবে এটি কীভাবে ডকার_কম্পোজ.আইএমএল দিয়ে করবেন?

এই মুহূর্তে আমি একটি কাজের হিসাবে ব্যবহার:

command: samba.sh arg1 arg2 arg3

আমি এন্টিপয়েন্টের পুনঃনির্ধারণকে বাধ্য করার কারণে এটি সন্তোষজনক নয়।

উত্তর:


128

commandদফা কাজ করে @Karthik উপরে বলছেন হিসাবে।

একটি সাধারণ উদাহরণ হিসাবে, নিম্নলিখিত পরিষেবাটি চালিত হওয়ার সাথে -inMemoryসাথে এর সাথে যুক্ত হবে ।ENTRYPOINTdocker-compose up

version: '2'
services:
  local-dynamo:
    build: local-dynamo
    image: spud/dynamo
    command: -inMemory

52

commandডকার-কমপোজ.আইএমএল-তে যা কিছু নির্দিষ্ট করা আছে তা ডকফাইফিলের entrypointসংজ্ঞায়িত হওয়াতে সংযুক্ত করা উচিত , প্রদত্ত ডকফাইফিলের নির্বাহী entrypointআকারে সংজ্ঞায়িত।

যদি এন্ট্রিপয়েন্টটি শেল আকারে সংজ্ঞায়িত করা হয় তবে কোনও সিএমডি যুক্তি উপেক্ষা করা হবে।


20
কিছু উদাহরণ সম্পর্কে। "এক্সিকিউট ফর্ম" কী?
অ্যারন ম্যাকমিলিন

13
ENTRYPOINT ["executable", "param1", "param2"](নির্বাহী ফর্ম, পছন্দসই) ENTRYPOINT command param1 param2(শেল ফর্ম) তথ্যসূত্র: ডকফেরফিল রেফারেন্স
jonasbn

16
একটি উদাহরণ এই উত্তর অনেক সাহায্য করবে।
ড্যাগরুমগুলি

32

আপনি এর docker-compose runপরিবর্তে ব্যবহার করতে পারেন docker-compose upএবং শেষে আর্গুমেন্টগুলি ট্যাক করতে পারেন । উদাহরণ স্বরূপ:

docker-compose run dperson/samba arg1 arg2 arg3

আপনার যদি অন্য ডকারের ধারকগুলির সাথে সংযোগ স্থাপন করতে হয় তবে ব্যবহার --service-portsবিকল্পটি ব্যবহার করতে পারে :

docker-compose run --service-ports dperson/samba arg1 arg2 arg3

1
দুর্ভাগ্যক্রমে
জলাবদ্ধভাবে

15

ডিফল্ট এন্ট্রিপয়েন্টটি ওভাররাইড করতে entrypointবিকল্পটি ব্যবহার করুন । আর্গুমেন্ট ব্যবহার পাস command

চিত্রের bashসাথে প্রতিস্থাপনের উদাহরণ এখানে দেওয়া shহয়েছে ubuntu:

version: '3'
services:
  sh:
    entrypoint: /bin/sh
    command: -c "ps $$(echo $$$$)"
    image: ubuntu
    tty: true
  bash:
    entrypoint: /bin/bash
    command: -c "ps $$(echo $$$$)"
    image: ubuntu
    tty: true

এখানে ফলাফল:

$ docker-compose up   
Starting test_sh_1                ... done
Starting 020211508a29_test_bash_1 ... done
Attaching to test_sh_1, 020211508a29_test_bash_1
sh_1    |   PID TTY      STAT   TIME COMMAND
sh_1    |     1 pts/0    Ss+    0:00 /bin/sh -c ps $(echo $$)
020211508a29_test_bash_1 |   PID TTY      STAT   TIME COMMAND
020211508a29_test_bash_1 |     1 pts/0    Rs+    0:00 ps 1

13

জেনকিন্স ssh ক্রীতদাস ' জেনকিনসি / এসএস-ক্রীতদাস ' নিয়েও আমি একই সমস্যার মুখোমুখি ছিলাম । তবে আমার মামলাটি কিছুটা জটিল ছিল কারণ এমন যুক্তিটি পাস করা দরকার ছিল যার মধ্যে শূন্যস্থান রয়েছে। আমি এটি নীচের মতো করে পরিচালনা করতে পেরেছি (ডকফাইফাইল এন্ট্রিপয়েন্টটি এক্সিকিউট আকারে রয়েছে):

command: ["some argument with space which should be treated as one"]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.