ডকার নেটওয়ার্কিং - এনগিনেক্স: [ইমার্জ] হোস্ট আপস্ট্রিমে পাওয়া যায় নি


99

আমি লিঙ্কগুলি ব্যবহার করে প্রতিস্থাপন করতে সম্প্রতি ডকার ১.৯ এবং ডকার-রচনা 1.5 এর নেটওয়ার্কিং বৈশিষ্ট্যগুলিতে স্থানান্তর শুরু করেছি।

এখনও পর্যন্ত লিঙ্কগুলির সাথে ডিনার-কমপোজের মাধ্যমে একটি গ্রুপে একটি ভিন্ন সার্ভারে অবস্থিত আমার পিএইচপি 5-এফপিএম ফাস্টসিগি সার্ভারের সাথে এনজিনেক্সের সংযোগে কোনও সমস্যা হয়নি। নতুনভাবে যদিও আমি docker-compose --x-networking upআমার পিএইচপি-এফপিএম চালাচ্ছি, মঙ্গো এবং এনগিনেক্স পাত্রে বুট আপ হয়ে গেছে, তবে এনজিনেক্স সরাসরি সাথে প্রস্থান করে[emerg] 1#1: host not found in upstream "waapi_php_1" in /etc/nginx/conf.d/default.conf:16

যাইহোক, আমি যদি পিএইচপি এবং মঙ্গো পাত্রে চলার সময় আবার ডকার-কম্পোজ কমান্ডটি চালিত করি (এনজিনেক্স প্রস্থানিত), তখন থেকে এনজিনেক্স শুরু হয় এবং সূক্ষ্মভাবে কাজ করে।

এটি আমার docker-compose.ymlফাইল:

nginx:
  image: nginx
  ports:
    - "42080:80"
  volumes:
    - ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro

php:
  build: config/docker/php
  ports:
    - "42022:22"
  volumes:
    - .:/var/www/html
  env_file: config/docker/php/.env.development

mongo:
  image: mongo
  ports:
    - "42017:27017"
  volumes:
    - /var/mongodata/wa-api:/data/db
  command: --smallfiles

এটা আমার default.conf জন্য এনজিঙ্ক্স:

server {
    listen  80;

    root /var/www/test;

    error_log /dev/stdout debug;
    access_log /dev/stdout;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/.+\.php(/|$) {
        # Referencing the php service host (Docker)
        fastcgi_pass waapi_php_1:9000;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        # We must reference the document_root of the external server ourselves here.
        fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;

        fastcgi_param HTTPS off;
    }
}

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


4
আমিও এর মুখোমুখি হচ্ছি। আমি নিশ্চিত নই যে এটি রচনা ফাইলটিতে কোনও ত্রুটি, বা ডকার নেটওয়ার্কিং নিজেই একটি বাগ।
জর্দান

উত্তর:


26

নির্ভরশীল_ন বৈশিষ্ট্য (নীচে আলোচনা করা) না আসা পর্যন্ত "ভলিউম_ফর্ম "টিকে কার্যকারণ হিসাবে ব্যবহার করার সম্ভাবনা রয়েছে। আপনাকে যা করতে হবে তা হ'ল নীচের মতো আপনার ডকার-রচনা ফাইলটি পরিবর্তন করুন:

nginx:
  image: nginx
  ports:
    - "42080:80"
  volumes:
    - ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
  volumes_from:
    - php

php:
  build: config/docker/php
  ports:
    - "42022:22"
  volumes:
    - .:/var/www/html
  env_file: config/docker/php/.env.development

mongo:
  image: mongo
  ports:
    - "42017:27017"
  volumes:
    - /var/mongodata/wa-api:/data/db
  command: --smallfiles

উপরোক্ত পদ্ধতির মধ্যে একটি বড় সাবধানতা হ'ল পিএইচপি-র ভলিউমগুলি এনজিনেক্সের সাথে প্রকাশিত হয়, যা পছন্দসই নয়। তবে এই মুহুর্তে এটি একটি ডকার নির্দিষ্ট কাজের মতো যা ব্যবহার করা যেতে পারে।

depend_on বৈশিষ্ট্য এটি সম্ভবত একটি ভবিষ্যত উত্তর হবে। কারণ কার্যকারিতা এখনও ডকারে প্রয়োগ করা হয়নি (1.9 হিসাবে)

ডকার প্রবর্তিত নতুন নেটওয়ার্কিং বৈশিষ্ট্যে "depend_on" প্রবর্তনের প্রস্তাব রয়েছে। তবে একই @ https://github.com/docker/compose/issues/374 সম্পর্কে দীর্ঘদিন ধরে বিতর্ক চলছে সুতরাং এটি একবার প্রয়োগ করা গেলে, বৈশিষ্ট্যটি নির্ভর করে_ কনটেইনার শুরু করার আদেশ দেওয়ার জন্য ব্যবহার করা যেতে পারে তবে মুহূর্তে, আপনাকে নিম্নলিখিতগুলির মধ্যে একটি অবলম্বন করতে হবে:

  1. পিএইচপি সার্ভারটি শেষ না হওয়া পর্যন্ত এনজিনেক্স পুনরায় চেষ্টা করুন - আমি এইটিকে পছন্দ করব
  2. উপরে বর্ণিত অনুসারে ভলিউম_ফর্ম ব্যবহার করুন - অযৌক্তিক পাত্রে ভলিউম ফুটো হওয়ার কারণে আমি এটি ব্যবহার করা এড়াতে চাই।

4
এটি আমার জন্য এটি ঠিক করে নি।
গিজ

@ জিজস যদি আপনি পোস্ট করতে পারেন তবে আপনার সঠিক কেসটি কী এবং কোনটি কার্যকর হয়নি, কেউ ফোরামে সহায়তা করতে পারে।
ফানি

4
ভলিউম_ফ্রোম অবহিত করা হয়েছে
রোমা রাশ

আমি এটি নিয়ে অ্যাজুরে অ্যাপ সার্ভিস ডকার রচনা (পূর্বরূপ) এর একটি ইস্যুতে ছুটে এসেছি। links:এটিও নিশ্চিত করতে হয়েছিল যে আমি এনজিনেক্সে অন্তর্ভুক্ত থাকা যে কোনও ব্যক্তি এই নামটিকে যেমন পরিষেবা পছন্দ করেছে - my-service:my-serviceবা এই উদাহরণে একই নাম ব্যবহার করেছে - mongo:mongo
গ্রেগ

29

এটি depends_onএখন (2016) বাস্তবায়িত হওয়ার কারণে এটি উল্লিখিত নির্দেশিকার সাথে সমাধান করা যেতে পারে :

version: '2'
  services:
    nginx:
      image: nginx
      ports:
        - "42080:80"
      volumes:
        - ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
      depends_on:
        - php

    php:
      build: config/docker/php
      ports:
        - "42022:22"
      volumes:
        - .:/var/www/html
      env_file: config/docker/php/.env.development
      depends_on:
        - mongo

    mongo:
      image: mongo
      ports:
        - "42017:27017"
      volumes:
        - /var/mongodata/wa-api:/data/db
      command: --smallfiles

সাফল্যের সাথে পরীক্ষিত:

$ docker-compose version
docker-compose version 1.8.0, build f3628c7

ডকুমেন্টেশনে আরও বিশদ সন্ধান করুন ।

এই বিষয়টিতে উত্সর্গীকৃত একটি খুব আকর্ষণীয় নিবন্ধও রয়েছে: রচনাটিতে স্টার্টআপ অর্ডার নিয়ন্ত্রণ করা


12

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

আপনি আপনার অবকাঠামো এবং গতি অনুযায়ী পুরো সেটআপটি আসছে সে অনুযায়ী আপনি এই দুটি সংখ্যা টিউন করতে পারেন। আপনি নীচের ইউআরএলের স্বাস্থ্য চেক বিভাগ সম্পর্কে আরও বিশদ পড়তে পারেন: http://nginx.org/en/docs/http/load_balancing.html

নিম্নলিখিতটি http://nginx.org/en/docs/http/ngx_http_upstream_module.html#server এর অংশ max_fails=number

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

fail_timeout=time

সার্ভারটি অনুপলব্ধ বিবেচনা করার জন্য সার্ভারের সাথে যোগাযোগের নির্দিষ্ট সংখ্যক ব্যর্থ প্রচেষ্টা হওয়া উচিত বলে সময় নির্ধারণ করে; এবং সময়ের সময়কাল সার্ভারটি অনুপলব্ধ বলে বিবেচিত হবে। ডিফল্টরূপে, প্যারামিটারটি 10 ​​সেকেন্ডে সেট করা হয়।

আপনার সংশোধিত এনগিনেক্স কনফিগারেশন ফাইলটি সুনির্দিষ্টভাবে হওয়া উচিত (এই স্ক্রিপ্টটি ধরে নিচ্ছে যে সমস্ত পাত্রে কমপক্ষে 25 সেকেন্ডের উপরে উঠে গেছে, যদি না হয় তবে দয়া করে নীচে আপস্ট্রিম বিভাগে ফেইলটাইমআউট বা ম্যাক্সফেইলগুলি পরিবর্তন করুন): দ্রষ্টব্য: আমি করিনি স্ক্রিপ্টটি নিজেই পরীক্ষা করুন, যাতে আপনি এটি ব্যবহার করে দেখতে পারেন!

upstream phpupstream {
   server waapi_php_1:9000 fail_timeout=5s max_fails=5;
}
server {
    listen  80;

    root /var/www/test;

    error_log /dev/stdout debug;
    access_log /dev/stdout;

    location / {
        # try to serve file directly, fallback to app.php
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/.+\.php(/|$) {
        # Referencing the php service host (Docker)
        fastcgi_pass phpupstream;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        # We must reference the document_root of the external server ourselves here.
        fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;

        fastcgi_param HTTPS off;
    }
}

এছাড়াও, ডকার ( https://github.com/docker/docker.github.io/blob/master/compose/networking.md#update-containers ) থেকে নিম্নলিখিত নোট অনুসারে , এটি স্পষ্ট যে চেক করার জন্য পুনরায় চেষ্টা করার যুক্তি অন্যান্য পাত্রে থাকা স্বাস্থ্যের ডকারের দায়িত্ব নয় বরং পাত্রে পাত্রে হ'ল স্বাস্থ্য পরীক্ষা করা উচিত।

পাত্রে আপডেট করা হচ্ছে

আপনি যদি কোনও পরিষেবায় একটি কনফিগারেশন পরিবর্তন করেন এবং এটি আপডেট করার জন্য ডকার-কমপোজ চালান, তবে পুরানো ধারকটি সরানো হবে এবং নতুনটি একটি পৃথক আইপি ঠিকানার পরিবর্তে তবে একই নামের সাথে নেটওয়ার্কে যোগ দেবে। চলমান পাত্রগুলি সেই নামটি সন্ধান করতে এবং নতুন ঠিকানায় সংযোগ করতে সক্ষম হবে তবে পুরানো ঠিকানাটি কাজ করা বন্ধ করবে।

কোনও পাত্রে যদি পুরানো পাত্রে কানেকশন থাকে তবে সেগুলি বন্ধ থাকবে। এই শর্তটি সনাক্ত করা, নামটি আবার সন্ধান এবং পুনরায় সংযোগ স্থাপন করা কোনও ধারকের দায়িত্ব।


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

4
@ ফার্গুজ এটি একটি দুর্দান্ত ক্যাচ ছিল। কার্যকারণ হিসাবে আপনি একই ধারকটির একটি গোষ্ঠী তৈরি করতে একই ধারকটির দুটি উরফ এন্ট্রি যুক্ত করতে পারেন।
ফানি

বিকল্প সমাধান হিসাবে, আমি একই প্রশ্নটি সরবরাহ করেছি কন্টেইনারগুলি লিঙ্ক করতে এবং অন্যান্য পাত্রে লোড না হওয়া পর্যন্ত তাদের অপেক্ষা করার জন্য "ভলিউম_ফর্ম" ব্যবহার করুন। এটি আমার জন্য কাজ করছে।
ফানি

7

আমি বিশ্বাস করি যে এনগিনেক্স ডকার রিসলভার (127.0.0.11) গ্রহণ করবেন না, তাই দয়া করে আপনি যুক্ত করার চেষ্টা করতে পারেন:

resolver 127.0.0.11

আপনার nginx কনফিগারেশন ফাইল?


একাধিক resolver 127.0.0.11 8.8.8.8;
রেজোলভার যুক্ত করুন

4
নথিতে যেমন বলা হয়েছে তেমন রাউন্ড রবিনে কোয়েরি করবে না: নাম সার্ভারগুলি রাউন্ড-রবিন ফ্যাশনে অনুসন্ধান করা হয়।
ডালোর

6

আপনি যদি শেষ মন্তব্য পড়ার জন্য হারিয়ে যান। আমি অন্য একটি সমাধানে পৌঁছেছি।

মূল সমস্যাটি হল আপনি যেভাবে পরিষেবাগুলির নাম রেখেছেন।

এই ক্ষেত্রে, যদি আপনার হয় docker-compose.yml, পিএইচপি জন্য পরিষেবাটিকে "এপিআই" বা এর মতো কিছু বলা হয়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে ফাইলটিতে nginx.confশুরু হওয়া লাইনটি fastcgi_passপিএইচপি পরিষেবা হিসাবে একই নাম রয়েছে। অর্থাত্fastcgi_pass api:9000;


3

আমার একই সমস্যা ছিল কারণ আমার মধ্যে দুটি নেটওয়ার্ক সংজ্ঞায়িত হয়েছিল docker-compose.yml: একটি ব্যাকএন্ড এবং একটি সম্মুখভাগ।
যখন আমি পরিবর্তন করেছি তখন একই ডিফল্ট নেটওয়ার্কে ধারক চালানোর জন্য সবকিছু ঠিকঠাক কাজ শুরু করে।


এটি উত্তর হতে অনেক দূরে।
dargmuesli

2

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

links:
  - php:waapi_php_1

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


1

দুটি বিষয় উল্লেখযোগ্য:

  • একই নেটওয়ার্ক ব্রিজ ব্যবহার করা হচ্ছে
  • linksহোস্ট রেজোল যুক্ত করতে ব্যবহার করা হচ্ছে

আমার উদাহরণ:

version: '3'
services:
  mysql:
    image: mysql:5.7
    restart: always
    container_name: mysql
    volumes:
      - ./mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: tima@123
    network_mode: bridge
  ghost:
    image: ghost:2
    restart: always
    container_name: ghost
    depends_on:
      - mysql
    links:
      - mysql
    environment:
      database__client: mysql
      database__connection__host: mysql
      database__connection__user: root
      database__connection__password: xxxxxxxxx
      database__connection__database: ghost
      url: https://www.itsfun.tk
    volumes:
      - ./ghost-data:/var/lib/ghost/content
    network_mode: bridge
  nginx:
    image: nginx
    restart: always
    container_name: nginx
    depends_on:
      - ghost
    links:
      - ghost
    ports:
      - "80:80"
      - "443:443"
    volumes:
       - ./nginx/nginx.conf:/etc/nginx/nginx.conf
       - ./nginx/conf.d:/etc/nginx/conf.d
       - ./nginx/letsencrypt:/etc/letsencrypt
    network_mode: bridge

আপনি যদি কোনও বিশেষ নেটওয়ার্ক সেতু নির্দিষ্ট না করেন তবে এগুলি সমস্ত একই ডিফল্ট ব্যবহার করবে।


1

প্রথম নজরে, আমি মিস করেছি, যে আমার "ওয়েব" পরিষেবাটি আসলে শুরু হয়নি, তাই এনজিনেক্স কোনও হোস্ট খুঁজে পেল না

web_1    | python3: can't open file '/var/www/app/app/app.py': [Errno 2] No such file or directory
web_1 exited with code 2
nginx_1  | [emerg] 1#1: host not found in upstream "web:4044" in /etc/nginx/conf.d/nginx.conf:2

আরে আমারও একই সমস্যা হচ্ছে আমার অ্যাপ্লিকেশন চলছে না তাই আমি একই ত্রুটি পাচ্ছি। আমি app.ini তে রান.পি হিসাবে ইউউজি-ফাইলটি রেখেছি যা অ্যাপটি চালানো উচিত ছিল তবে তা ঘটছে না
isrj5

0

লিঙ্কগুলির সাথে ধারক প্রারম্ভকালের একটি আদেশ প্রয়োগ করা হচ্ছে। লিঙ্ক ছাড়াই পাত্রে যে কোনও ক্রমে (বা সত্যিই সমস্ত একবারে) শুরু করা যেতে পারে।

আমি মনে করি waapi_php_1কনটেইনারটি শুরু করতে ধীর হয়ে থাকলে পুরানো সেটআপটি একই সমস্যাটিকে আঘাত করতে পারে ।

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

আমি নিশ্চিত না যে এনগিনেক্সের স্বয়ংক্রিয়ভাবে প্রবাহের সাথে সংযোগটি আবার চেষ্টা করার উপায় আছে কিনা, তবে যদি তা হয় তবে এটি আরও ভাল বিকল্প হবে।


এবং আমি কীভাবে পোলিং করব?
আটটিলা সিজারেমি

0

আপনার ব্যাকএন্ডটি শেষ হয়ে গেলে আপনাকে এনজিএনএক্স কনফিগারেশনটিকে গতিশীলভাবে আপডেট করতে ডকার-জেনের মতো কিছু ব্যবহার করতে হবে।

দেখা:

আমি বিশ্বাস করি এনগিনেক্স + (প্রিমিয়াম সংস্করণ) এর মধ্যে একটি রেজোলিউশন প্যারামিটারও রয়েছে ( http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream )


0

পাত্রে ইস্যু সম্পর্কিত লিঙ্কগুলি এড়ানোর জন্য সর্বোত্তম পছন্দ হ'ল ডকার নেটওয়ার্কিং বৈশিষ্ট্য

তবে এই কাজটি করার জন্য, ডকার প্রতিটি ধারকগুলির জন্য নির্ধারিত নাম থেকে প্রতিটি ধারক / / ইত্যাদি / হোস্টগুলিতে এন্ট্রি তৈরি করে ।

ডকার-কমপোজ - এক্স-নেটওয়ার্কিং-আপের সাথে হ'ল [ডকার_কম্পোজ_ফোল্ডার] - [পরিষেবা] - [ইনক্রিমেন্টাল_নবার]

এই নামে অপ্রত্যাশিত পরিবর্তনগুলির উপর নির্ভর না করার জন্য আপনার প্যারামিটারটি ব্যবহার করা উচিত

ধারক_নাম

আপনার ডকার-কম্পোজ.আইএমএলে নীচে:

php:
      container_name: waapi_php_1
      build: config/docker/php
      ports:
        - "42022:22"
      volumes:
        - .:/var/www/html
      env_file: config/docker/php/.env.development

এই পরিষেবার জন্য আপনার কনফিগারেশন ফাইলে নির্ধারিত একই নামটি নিশ্চিত করা। আমি নিশ্চিত যে এটি করার আরও ভাল উপায় আছে তবে এটি শুরু করার জন্য এটি একটি ভাল পদ্ধতির।


0

আমার কাজের ভিত্তি (অনেক পরীক্ষার এবং ত্রুটির পরে):

  • এই সমস্যাটি সন্ধান করার জন্য, আমাকে 'আপস্ট्रीम' ডকারের ধারকটির পুরো নামটি পেতে হবে , যা চালানো docker network inspect my-special-docker-networkএবং উজানের ধারকটির পুরো nameসম্পত্তি পেয়ে যেমন পাওয়া গিয়েছিল:

    "Containers": {
         "39ad8199184f34585b556d7480dd47de965bc7b38ac03fc0746992f39afac338": {
              "Name": "my_upstream_container_name_1_2478f2b3aca0",
    
  • তারপরে সম্পত্তি ব্লকের এনজিআইএনএক্স my-network.local.confফাইলটিতে এটি ব্যবহার করুন : ( ধারকটির নামের সাথে জিইউডি যোগ করার বিষয়টি নোট করুন):locationproxy_pass

    location / {
        proxy_pass http://my_upsteam_container_name_1_2478f2b3aca0:3000;
    

পূর্বে কাজ করার বিপরীতে, কিন্তু এখন ভাঙা:

    location / {
        proxy_pass http://my_upstream_container_name_1:3000

সম্ভবত কারণ হিসেবে তালিকাভুক্ত, পাত্রে জন্য তাদের ডিফল্ট নামকরণ স্কিম Docker রচনাতে একটি সাম্প্রতিক পরিবর্তন, এখানে

ডকার nginxচিত্রের সর্বশেষতম সংস্করণ সহ আমার এবং আমার দলের পক্ষে এটি কাজ করছে বলে মনে হচ্ছে :

  • আমি Docker তাদের সঙ্গে সমস্যা খুলেছেন / GitHub রচনা এখানে

0

(এনগিনেক্সে নতুন) আমার ক্ষেত্রে এটি ফোল্ডারের নাম ছিল

কনফিগার জন্য

upstream serv {
    server ex2_app_1:3000;
}

অ্যাপ ফোল্ডারটি এক্স 2 ফোল্ডারে রয়েছে তা নিশ্চিত করুন:

এক্স 2 / অ্যাপ / ...


0

এই ত্রুটিটি আমার কাছে উপস্থিত হয়েছিল কারণ আমার php-fpmচিত্র সক্ষম হয়েছে cronএবং কেন তা আমার কোনও ধারণা নেই


0

আমার সমস্যাটি হ'ল আমি পিএইচপি-এফপিএম -তে ডকার-কমপোজ.আইএমএল নেটওয়ার্কের ওরফে নির্দিষ্ট করতে ভুলে গেছি

    networks:
      - u-online

এটা ভাল কাজ করে!

version: "3"
services:

  php-fpm:
    image: php:7.2-fpm
    container_name: php-fpm
    volumes:           
      - ./src:/var/www/basic/public_html
    ports:
      - 9000:9000
    networks:
      - u-online
      
  nginx: 
    image: nginx:1.19.2
    container_name: nginx   
    depends_on:
      - php-fpm       
    ports:
      - "80:8080"
      - "443:443"
    volumes:
      - ./docker/data/etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
      - ./docker/data/etc/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./src:/var/www/basic/public_html
    networks:
      - u-online

#Docker Networks
networks:
  u-online:
    driver: bridge

-1

যোগ সংযোগগুলি আপনার nginx ধারক কনফিগারেশনে অধ্যায়।

দৃশ্যমান করতে হবে phpকরতে ধারক nginxধারক।

nginx:
  image: nginx
  ports:
    - "42080:80"
  volumes:
    - ./config/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
  links:
    - php:waapi_php_1

4
আমি লিঙ্কগুলি সম্পর্কে জানি, তবে ডকার এগুলিকে ডকারের নেটওয়ার্কিং ব্যবহারের পক্ষে এক সপ্তাহ আগে প্রকাশিত সংস্করণ ১.৯ এ অবহিত হিসাবে চিহ্নিত করেছেন। আমি একটি সমাধান চাই যা এটি ব্যবহার করে, আংশিক কারণ লিঙ্কগুলির সাথে বিজ্ঞপ্তিযুক্ত লিঙ্কগুলির একটি সমস্যা রয়েছে যা নেটওয়ার্কিংয়ের উচিত নয়।
আটটিলা সেজেরেমি

4
ইন CHANGELOG.md আমি দেখতে পাচ্ছি না linkঅবচিত করা হচ্ছে। আমি কিছু অনুপস্থিত করছি?
নেসুনো

আমি সেখানেও দেখিনি; তবে আমি যখন আমার docker-compose --x-networking upসংজ্ঞায়িত লিঙ্কগুলি নিয়ে চলেছি docker-compose.yml, তখন আমি এই স্পষ্ট সতর্কতাটি WARNING: "nginx" defines links, which are not compatible with Docker networking and will be ignored. Future versions of Docker will not support links - you should remove them for forwards-compatibility.
পেয়েছি

ঠিক আছে আমি হ্রাস পেয়েছি যেখানে খুঁজে পেয়েছি । আমার একমাত্র ধারণাটি: আপনি কি docker-compose.ymlনামের ফোল্ডারে ফাইল করছেন waapi?
নেসুনো

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