একাধিক ডকার-রচনা প্রকল্পের মধ্যে যোগাযোগ


252

দুটি পৃথক docker-compose.ymlফোল্ডারে আমার দুটি পৃথক ফাইল রয়েছে:

  • ~/front/docker-compose.yml
  • ~/api/docker-compose.yml

আমি কীভাবে নিশ্চিত করতে পারি যে কোনও পাত্রে কোনও ধারককে frontঅনুরোধ প্রেরণ করতে পারে api?

আমি জানি যে পৃথক ধারক --default-gatewayব্যবহার করে বিকল্পটি সেট করা যেতে পারে docker run, যাতে এই ধারকটিকে একটি নির্দিষ্ট আইপি ঠিকানা বরাদ্দ করা যেতে পারে তবে মনে হয় ব্যবহার করার সময় এই বিকল্পটি উপলব্ধ নেই docker-compose

বর্তমানে আমি একটি কাজ শেষ করেছি docker inspect my_api_container_idএবং আউটপুটটির প্রবেশদ্বারটি দেখছি । এটি কাজ করে তবে সমস্যাটি হ'ল এই আইপিটি এলোমেলোভাবে চিহ্নিত করা হয়েছে, সুতরাং আমি এটির উপর নির্ভর করতে পারি না।

এই প্রশ্নের আর একটি রূপ হতে পারে:

  • আমি কি ডকার-কম্পোজ ব্যবহার করে কোনও নির্দিষ্ট ধারককে একটি নির্দিষ্ট আইপি ঠিকানাটি বিশিষ্ট করতে পারি?

তবে শেষ পর্যন্ত আমি যা দেখছি তা হ'ল:

  • দুটি ভিন্ন ডকার-রচনা প্রকল্প একে অপরের সাথে কীভাবে যোগাযোগ করতে পারে?

4
আমি আজ এটি আবার সন্ধান। ডেভসগুলি অবশেষে স্বেচ্ছাসেবী নেটওয়ার্ক নামকরণ পুনরায় বিক্রি করেছে এবং অনুমতি দিয়েছে। রচনা ফাইল সংস্করণ 3.5 ব্যবহার করে আপনি 'নেটওয়ার্ক' কী এর অধীনে ডিফল্ট নেটওয়ার্কের জন্য একটি নাম নির্দিষ্ট করতে পারেন। এটি যদি না থাকে তবে সাধারণ প্রকল্পের নামের উপসর্গ ব্যতীত একটি নামকৃত নেটওয়ার্ক তৈরি করবে ..
ক্রিসটটন

উত্তর:


325

আপনাকে কেবল এটি নিশ্চিত করতে হবে যে আপনি যে পাত্রে একে অপরের সাথে কথা বলতে চান তা একই নেটওয়ার্কে রয়েছে। নেটওয়ার্কগুলি প্রথম শ্রেণির ডকার নির্মাণ, এবং রচনায় নির্দিষ্ট নয়।

# front/docker-compose.yml
version: '2'
services:
  front:
    ...
    networks:
      - some-net
networks:
  some-net:
    driver: bridge

...

# api/docker-compose.yml
version: '2'
services:
  api:
    ...
    networks:
      - front_some-net
networks:
  front_some-net:
    external: true

দ্রষ্টব্য: আপনার অ্যাপ্লিকেশনটির নেটওয়ার্কটিকে "প্রকল্পের নাম" এর উপর ভিত্তি করে একটি নাম দেওয়া হয়েছে যা এটি যে ডিরেক্টরিতে থাকে তার নামের উপর ভিত্তি করে এই ক্ষেত্রে একটি উপসর্গ যুক্ত front_করা হয়েছিল

তারা তখন পরিষেবার নাম ব্যবহার করে একে অপরের সাথে কথা বলতে পারে। থেকে frontআপনি কি করতে পারেন ping apiএবং তদ্বিপরীত।


1
জীবন এটি একটি অ-সমাধান। আপনার পাত্রে হোস্ট সম্পর্কে কিছু জানার দরকার নেই বা সেভাবে ম্যানিপুলেট করা উচিত। আমার উত্তরটি যদিও খুব সংক্ষিপ্ত ছিল, আমি আরও বিশদ সহ আপডেট করেছি।
johnharris85

3
রবার্ট মোসকাল কেবলমাত্র যদি আপনি আপনার ডকার হোস্টের আইপিটি পাত্রে getুকতে চারপাশে হ্যাক করেন। একটি সাধারণ ডকার-সংজ্ঞায়িত নেটওয়ার্কে তাদের যোগাযোগ করা ভাল।
johnharris85

2
দয়া করে নোট করুন যে নেটওয়ার্কটিতে "সম্মুখ_" উপসর্গটি ফোল্ডারটি চলমান থেকে স্বয়ংক্রিয়ভাবে তৈরি হয়ে গেছে। সুতরাং যদি আপনার প্রথম ডকার-রচনা ফাইলটি "উদাহরণ / ডকার-কমপোজ.আইএমএল" এর মধ্যে অবস্থিত তবে এটিকে পরিবর্তে "উদাহরণ_দেফফল্ট" বলা হবে।
AngryUbuntuNerd

7
আপনি nameসম্পত্তি ব্যবহার করে কোনও নেটওয়ার্ককে একটি নামও সরবরাহ করতে পারেন , যা প্রকল্পের নামের সাথে স্বয়ংক্রিয় প্রিপেন্ডিং অক্ষম করবে। তারপরে কোনও প্রকল্পই সেই নেটওয়ার্কটি ব্যবহার করতে পারে এবং এটি উপস্থিত না থাকলে স্বয়ংক্রিয়ভাবে তৈরি করতে পারে।
স্টিভবি

2
@ স্টিভবি - নোট করুন যে নামের সম্পত্তিটি কেবলমাত্র ডকার-
কমপোজ

78

@ জনহরিস 85৮ এর দুর্দান্ত উত্তরের কেবল একটি ছোট্ট অ্যাডিশন, আপনি যখন ডকার রচনা ফাইল চালাচ্ছেন, একটি " default" নেটওয়ার্ক তৈরি করা হয়েছে যাতে আপনি কেবল এটি অন্য রচনা ফাইলটিতে একটি বাহ্যিক নেটওয়ার্ক হিসাবে যুক্ত করতে পারেন:

# front/docker-compose.yml 
version: '2' 
  services:   
    front_service:
    ...

...

# api/docker-compose.yml
version: '2'
services:
  api_service:
    ...
    networks:
      - front_default
networks:
  front_default:
    external: true

আমার জন্য এই পদ্ধতিটি আরও উপযুক্ত ছিল কারণ আমি প্রথম ডকার-রচনা ফাইলটির মালিক নই এবং এটির সাথে যোগাযোগ করতে চেয়েছিলাম।


এই বাহ্যিক নেটওয়ার্কের জন্য স্থির আইপি নির্ধারণের জন্য সঠিক উপায়ে ঘুরে বেড়ানো। আমি services:ট্যাগের মধ্যে এটি করার ব্যবস্থা করেছিলাম , সিনট্যাক্সটি networks:তখন নেস্ট করা হবে front_default:("-" মুছে ফেলুন) এবং তারপরে আমরা একটি স্ট্যাটিক আইপিকে বাসা বেঁধে ipv4_address: '172.20.0.44'
দেব

76

আপডেট: রচনা ফাইল সংস্করণ 3.5 হিসাবে:

এটি এখন কাজ করে:

version: "3.5"
services:
  proxy:
    image: hello-world
    ports:
      - "80:80"
    networks:
      - proxynet

networks:
  proxynet:
    name: custom_network

docker-compose up -d'কাস্টম_নেটওয়ার্ক' নামে পরিচিত একটি নেটওয়ার্কে যোগদান করবে। এর অস্তিত্ব না থাকলে এটি তৈরি হবে!

root@ubuntu-s-1vcpu-1gb-tor1-01:~# docker-compose up -d
Creating network "custom_network" with the default driver
Creating root_proxy_1 ... done

এখন, আপনি এটি করতে পারেন:

version: "2"
services:
  web:
    image: hello-world
    networks:
      - my-proxy-net
networks:
  my-proxy-net:
    external:
      name: custom_network

এটি এমন একটি ধারক তৈরি করবে যা বাহ্যিক নেটওয়ার্কে থাকবে।

আমি দস্তাবেজগুলিতে এখনও কোনও রেফারেন্স পাই না তবে এটি কার্যকর!


আপনি কি একটি নির্দিষ্ট ক্রমে দুটি পরিষেবা শুরু করতে হবে? আপনি যে কোনও একটি শুরু করতে পারেন, এবং প্রথমটি নেটওয়ার্ক তৈরি করবে এবং দ্বিতীয়টি এতে যোগ দেবে?
স্ল্যাশডটটিয়ার

4
প্রথম পরিষেবা (উপরে প্রক্সি) নেটওয়ার্ক তৈরি করে। দ্বিতীয় উদাহরণের বাক্য গঠন এটিতে যোগ দেয়।
cstrutton

2
@ স্ল্যাশডটটিয়ার আপনি দ্বিতীয় পরিষেবায় নেটওয়ার্কটিকে বাহ্যিক হিসাবে চিহ্নিত করতে পারবেন না এবং এটি তৈরি করা হবে যদি এটি এখনও উপস্থিত না থাকে।
স্টিভবি

2
এটা কাজ করে। আমি সবেমাত্র সর্বশেষতম ডকার রচনা দিয়ে একটি ডিও ড্রপলেট রেখেছি। আমি উদাহরণটিকে বাস্তব কাজের উদাহরণে সম্পাদনা করেছি ited
cstrutton

1
আমার ক্ষেত্রে এটি গৃহীত উত্তরের চেয়ে আরও উপযুক্ত সমাধান হতে পারে। বাহ্যিক নেটওয়ার্কের সমস্যাটি ছিল, এটির জন্য পূর্বনির্ধারিত ক্রমযুক্ত ধারকগুলি শুরু করা দরকার। আমার ক্লায়েন্টের পক্ষে এটি গ্রহণযোগ্য ছিল না। একটি নামী নেটওয়ার্ক (3.5 থেকে) নিখুঁত সমাধান হিসাবে দেখা গেছে। ধন্যবাদ।
ygor

24

সমস্ত কনটেইনার নিম্নলিখিত কনফিগারেশনের সাথে ডিফল্ট নেটওয়ার্কে apiযোগদান করতে পারে :front

# api/docker-compose.yml

...

networks:
  default:
    external:
      name: front_default

ডকার রচনা নির্দেশিকাটি দেখুন: একটি বিদ্যমান বিদ্যমান নেটওয়ার্ক ব্যবহার করে (নীচে দেখুন)


12

পূর্ববর্তী পোস্টগুলির তথ্য সঠিক, তবে এটিতে পাত্রে কীভাবে লিঙ্ক করবেন তার বিশদ নেই, যা "বহিরাগত_তারা" হিসাবে সংযুক্ত হওয়া উচিত।

আশা করি এই উদাহরণটি আপনাকে আরও স্পষ্ট করে তুলেছে:

  • ধরুন আপনার কাছে অ্যাপ্লিকেশন / ডকার-কমপোজ.আইএমএল, দুটি পরিষেবা (এসভিসি 11 এবং এসভিসি 12) রয়েছে এবং অ্যাপ্লিকেশন / ডকার-কমপোজ.আইএমএল আরও দুটি পরিষেবা (এসভিসি 21 এবং এসভিসি 22) রয়েছে এবং ধরুন আপনার ক্রস ফ্যাশনে সংযোগ স্থাপন করতে হবে:

  • svc11 এর এসভিসি 22 এর ধারকটির সাথে সংযোগ স্থাপন করতে হবে

  • svc21 এর এসভিসি 11 এর ধারকটির সাথে সংযুক্ত হওয়া দরকার।

সুতরাং কনফিগারেশনটি এর মতো হওয়া উচিত:

এটি অ্যাপ 1 / ডকার-কমপোজ.আইএমএল:


version: '2'
services:
    svc11:
        container_name: container11
        [..]
        networks:
            - default # this network
            - app2_default # external network
        external_links:
            - container22:container22
        [..]
    svc12:
       container_name: container12
       [..]

networks:
    default: # this network (app1)
        driver: bridge
    app2_default: # external network (app2)
        external: true

এটি অ্যাপ 2 / ডকার-কমপোজ.আইএমএল:


version: '2'
services:
    svc21:
        container_name: container21
        [..]
        networks:
            - default # this network (app2)
            - app1_default # external network (app1)
        external_links:
            - container11:container11
        [..]
    svc22:
       container_name: container22
       [..]

networks:
    default: # this network (app2)
        driver: bridge
    app1_default: # external network (app1)
        external: true

6

রচনা 1.18 (স্পেস 3.5), আপনার প্রয়োজনীয় সমস্ত রচনা YAML ফাইলগুলির জন্য আপনার নিজস্ব কাস্টম নামটি ব্যবহার করে আপনি কেবল ডিফল্ট নেটওয়ার্কটিকে ওভাররাইড করতে পারেন। এটি নিম্নলিখিত তাদের সংযোজন হিসাবে সহজ:

networks:
  default:
    name: my-app

উপরের ধরে নেওয়া হয়েছে যে আপনি versionসেট করেছেন 3.5(বা উপরে যদি তারা এটিকে 4+ এ অবমূল্যায়ন না করে)।

অন্যান্য উত্তর একই নির্দেশ করেছে; এটি একটি সরলীকৃত সংক্ষিপ্তসার।


2

আমি নিশ্চিত করব যে সমস্ত কন্টেইনারগুলি docker-composeএকই নেটওয়ার্কে একই সাথে একসাথে রচনা করে, ব্যবহার করে:

docker compose --file ~/front/docker-compose.yml --file ~/api/docker-compose.yml up -d

এটি কি আমাকে, উদাহরণস্বরূপ, একটি linkবা depends_onএকটি পাত্রে থেকে এপিআইয়ের একটি ধারক পর্যন্ত তৈরি করতে অনুমতি দেবে ?
জীবন

আসলে আমি যখন আপনার পরামর্শ অনুযায়ী যা করি তখন ডকার-রচনাগুলি উত্তর দেয় build path ~/front/api either does not exist or is not accessibleবা অন্যভাবে,build path ~/api/front either does not exist or is not accessible
জীবন

1
আপনি যদি একই সময়ে সেগুলি রচনা করেন তবে আপনার প্রয়োজন হবে না। একটি নেটওয়ার্ক এটি আপনার সব পাত্রে দিয়ে তৈরি করা হবে, তারা সব রচনা ফাইল (থেকে পরিষেবার নাম মাধ্যমে যোগাযোগ করতে সক্ষম হতে হবে না ধারক নাম)।
নওরাশুন

দুটি রচনা ফাইল একই ফোল্ডারে থাকলে এটি আরও সহজ হতে পারে। তবে আমি এটি প্রয়োজনীয় মনে করি না - আমার মনে হয় এটি কোনওভাবেই কাজ করা উচিত।
নওরাশুন

2
এই সমাধানটি কাজ করে না, এই থ্রেডটিতে আমার মন্তব্য দেখুন: github.com/docker/compose/issues/3530#issuecomment-222490501
johnharris85

2

আপডেট: রচনা ফাইল সংস্করণ 3.5 হিসাবে:

আমি একই সমস্যাটি দেখতে পেয়েছি এবং আমি আমার ডকার-কমপোজ.আইএমএল প্রকল্পে একটি ছোট পরিবর্তন যুক্ত করে এটি সমাধান করেছি।

উদাহরণস্বরূপ আমাদের দুটি এপিআই scoringএবং nerScoringএপিআইয়ের nerইনপুট অনুরোধটি প্রক্রিয়া করার জন্য এপিআই- তে একটি অনুরোধ প্রেরণ করা দরকার । এটি করার জন্য তারা উভয়ই একই নেটওয়ার্ক ভাগ করে নেবে বলে মনে করা হচ্ছে।

দ্রষ্টব্য: প্রতিটি ধারকের নিজস্ব নেটওয়ার্ক রয়েছে যা ডকারের ভিতরে অ্যাপ্লিকেশন চালনার সময় স্বয়ংক্রিয়ভাবে তৈরি হয়ে যায়। উদাহরণস্বরূপ, নেড় এপিআই নেটওয়ার্ক তৈরি হবে ner_defaultএবং স্কিরিং এপিআই নেটওয়ার্ক হিসাবে নামকরণ করা হবে scoring default। এই সমাধানটি সংস্করণটির জন্য কাজ করবে: '3'।

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

networks:
  default:
      external:
        name: scoring_default

নেরের / Docker-compose.yml

version: '3'
services:
  ner:
    build: .
    ...

networks:
  default:
      external:
        name: scoring_default

স্কোরিং / Docker-compose.yml

version: '3'
services:
  api:
    build: .
    ...

উপরের পাতাগুলি এখন একই নেটওয়ার্কের অংশ হিসাবে এটি দেখতে পারে see scoring_default কমান্ডটি ব্যবহার করে :

ডকার স্কোরিং_ডিফল্ট পরিদর্শন করুন

{
    "Name": "scoring_default",
        ....
    "Containers": {
    "14a6...28bf": {
        "Name": "ner_api",
        "EndpointID": "83b7...d6291",
        "MacAddress": "0....",
        "IPv4Address": "0.0....",
        "IPv6Address": ""
    },
    "7b32...90d1": {
        "Name": "scoring_api",
        "EndpointID": "311...280d",
        "MacAddress": "0.....3",
        "IPv4Address": "1...0",
        "IPv6Address": ""
    },
    ...
}

1

.envধারণকারী সমস্ত প্রকল্পগুলিতে আপনি একটি ফাইল যুক্ত করতে পারেন COMPOSE_PROJECT_NAME=somename

COMPOSE_PROJECT_NAME আপনার সমস্ত প্রকল্প যেমন ব্যবহার করবে, সম্পদের নামকরণ করতে ব্যবহৃত উপসর্গকে ওভাররাইড করেsomename_default তাদের নেটওয়ার্ক হিসাবে , পরিষেবাগুলিকে একই প্রকল্পে যেমন ছিল তাদের একে অপরের সাথে যোগাযোগ করা সম্ভব করে তোলে।

এনবি: আপনি অন্যান্য প্রকল্প থেকে তৈরি "অনাথ" পাত্রে সাবধানতা পাবেন।


0
version: '2'
services:
  bot:
    build: .
    volumes:
      - '.:/home/node'
      - /home/node/node_modules
    networks:
      - my-rede
    mem_limit: 100m
    memswap_limit: 100m
    cpu_quota: 25000
    container_name: 236948199393329152_585042339404185600_bot
    command: node index.js
    environment:
      NODE_ENV: production
networks:
  my-rede:
    external:
      name: name_rede_externa

0

অন্য একটি ডকার-রচনা নেটওয়ার্ক ব্যবহারের জন্য আপনি কেবল এটিগুলি করেন (ডকার-রচনাগুলির মধ্যে নেটওয়ার্কগুলি ভাগ করতে):

  1. দ্বারা প্রথম ডকার-রচনা প্রকল্পটি চালান up -d
  2. প্রথম ডকার-রচনাটির দ্বারা নেটওয়ার্কের নাম এটি দ্বারা সন্ধান করুন: docker network ls(এটিতে মূল ডিরেক্টরি প্রকল্পের নাম রয়েছে)
  3. তারপরে এই কাঠামোর দ্বারা সেই নামটি দ্বিতীয় ডকার-রচনা ফাইলটিতে নীচে ব্যবহার করুন।

দ্বিতীয় ডকার-কম্পোজ.আইএমএল

version: '3'
services:
  service-on-second-compose:  # Define any names that you want.
    .
    .
    .
    networks:
      - <put it here(the network name that comes from "docker network ls")>

networks:
  - <put it here(the network name that comes from "docker network ls")>:
    external: true

0

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

উদাহরণস্বরূপ app1 - পরিষেবা লাইনে নির্মিত নতুন-নেটওয়ার্ক, বাহ্যিক হিসাবে চিহ্নিত করুন: নীচে app2 এ সত্য - অ্যাপ্লিকেশন দ্বারা তৈরি করা "নতুন-নেটওয়ার্ক" ইঙ্গিত করুন যখন উপরে যান, বাহ্যিক হিসাবে চিহ্নিত করুন: নীচে সত্য এবং কনফিগারেশনে সেট করুন সংযোগ করতে, এই নেটটিতে অ্যাপ্লিকেশনটি আইপি 1 রয়েছে।

এটির সাথে, আপনার একে অপরের সাথে কথা বলতে সক্ষম হওয়া উচিত

* এই উপায়টি কেবলমাত্র স্থানীয়-পরীক্ষার ফোকাসের জন্য, যাতে কোনও জটিল কনফিগারেশন না করার জন্য হয় ** আমি জানি খুব 'প্যাচ ওয়ে' তবে এটি আমার পক্ষে কাজ করে এবং আমি মনে করি যে খুব সহজ অন্য কেউ এর সুবিধা নিতে পারে can


0

যদি তুমি হও

  • বিভিন্ন ডকার-রচনা প্রকল্পগুলি থেকে দুটি ধারকগুলির মধ্যে যোগাযোগের চেষ্টা করা হচ্ছে এবং একই নেটওয়ার্কটি ব্যবহার করতে চান না (কারণ ধরা যাক যে তাদের একই পোস্টে পোস্টগ্রাসএসকিউএল বা রেডিস ধারক থাকবে এবং আপনি এই বন্দরগুলি পরিবর্তন না করা এবং এটি ব্যবহার না করা পছন্দ করবেন একই নেটওয়ার্কে)
  • স্থানীয়ভাবে উন্নয়নশীল এবং দুটি ডকার রচনা প্রকল্পের মধ্যে যোগাযোগের অনুকরণ করতে চাই
  • লোকালহোস্টে দুটি ডকার-রচনা প্রকল্প পরিচালনা করছে
  • বিশেষ করে জ্যাঙ্গো অ্যাপস বা জ্যাঙ্গো রেস্ট ফ্রেমওয়ার্ক (ড্রাফ) এপিআই এবং কিছু উন্মুক্ত বন্দরে কনটেইনারটির ভিতরে চলমান অ্যাপ্লিকেশন বিকাশ করা হচ্ছে
  • Connection refusedদুটি পাত্রে যোগাযোগ করার চেষ্টা করার সময় পেয়ে যাচ্ছি

এবং আপনি চান

  • ধারক একই "ডকার নেটওয়ার্ক" ছাড়াই (বা বিপরীতে) api_aযোগাযোগ করেapi_b

(নীচে উদাহরণ)

আপনি নিজের কম্পিউটার এবং পোর্টের আইপি হিসাবে দ্বিতীয় ধারকটির "হোস্ট" ব্যবহার করতে পারেন যা ডকারের ধারকটির ভিতরে থেকে ম্যাপ করা হয়েছে। আপনি এই স্ক্রিপ্টটি দিয়ে আপনার কম্পিউটারের আইপি পেতে পারেন (থেকে: পাইথনের স্টাডলিব ব্যবহার করে স্থানীয় আইপি ঠিকানাগুলি সন্ধান করা ):

import socket
def get_ip():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        # doesn't even have to be reachable
        s.connect(('10.255.255.255', 1))
        IP = s.getsockname()[0]
    except:
        IP = '127.0.0.1'
    finally:
        s.close()
    return IP

উদাহরণ:

project_api_a/docker-compose.yml:

networks:
  app-tier:
    driver: bridge

services:
  api:
    container_name: api_a
    image: api_a:latest
    depends_on:
      - postgresql
    networks:
      - app-tier

api_aধারকটির ভিতরে আপনি জ্যাঙ্গো অ্যাপ্লিকেশনটি চালাচ্ছেন: manage.py runserver 0.0.0.0:8000

এবং অন্যান্য প্রকল্প থেকে দ্বিতীয় ডকার-কমপোজ.আইএমএল:

project_api_b/docker-compose-yml :

networks:
  app-tier:
    driver: bridge

services:
  api:
    container_name: api_b
    image: api_b:latest
    depends_on:
      - postgresql
    networks:
      - app-tier

api_bধারকটির ভিতরে আপনি জ্যাঙ্গো অ্যাপ্লিকেশনটি চালাচ্ছেন: manage.py runserver 0.0.0.0:8001

এবং ধারক api_aথেকে api_bতারপরে ইউআরএল- তে সংযোগ দেওয়ার চেষ্টা করা হচ্ছেapi_b কনটেইনারটির হবে: http://<get_ip_from_script_above>:8001/

এটি বিশেষত মূল্যবান হতে পারে যদি আপনি আরও দুটি (তিন বা ততোধিক) ডকার-রচনা প্রকল্পগুলি ব্যবহার করেন এবং এগুলির জন্য সাধারণ নেটওয়ার্ক সরবরাহ করা শক্ত - এটি ভাল কাজ এবং সমাধান

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