HAProxy / डोकर: 502 खराब गेटवे जब डोकर कंटेनर बोतल चल मार / प्रतिक्रिया एप्लिकेशन

वोट
0

मैं विकास / सहयोग में आसानी के लिए एक फ्लास्क / प्रतिक्रिया वेब अनुप्रयोग Dockerize करने की कोशिश कर रहा हूँ, लेकिन मुद्दों आवेदन से एक उचित प्रतिक्रिया हो रही। मैं छवि का निर्माण किया और बोतल सर्वर एक कंटेनर में शुरू किया था, लेकिन यह मार मुद्दों कर वास्तव में प्राप्त करने में सक्षम हूँ।

हम आगे अनुरोध करने के लिए HAProxy उपयोग करते हैं, और सब कुछ ठीक काम जब मैं प्रॉक्सी और वेब सर्वर स्थानीय स्तर पर चल रहा है। मुद्दा मिश्रण में डोकर मिल रही हैं। मेरा मानना ​​है कि यह एक बंदरगाह नक्शे की समस्या होना चाहिए, लेकिन मैं विचारों से बाहर हूँ और लगता है मैं कुंजी HAProxy / डोकर बारीकियों गायब हो सकता है। (शामिल नहीं बाहरी मेजबानों के साथ) proxy.cfg फ़ाइल दिखता है इस प्रकार है:

global
 maxconn 4096
 pidfile ~/tmp/haproxy.pid

defaults
 log global
 log 127.0.0.1 local0
 log 127.0.0.1 local1 notice
 mode http
 timeout connect 300000
 timeout client 300000
 timeout server 300000
 maxconn 2000
 option redispatch
 retries 3
 option httpclose
 option httplog
 option forwardfor
 option httpchk HEAD / HTTP/1.0


frontend dev
   bind *:8080 ssl crt ./proxy.pem

    acl allow_web path_beg /app/

    use_backend be_web if allow_web

backend be_web
 balance roundrobin
 server web_5000 localhost:5000

Dockerfile:

FROM node:10.6.0

RUN apt-get update
RUN apt-get install -y python-pip python-dev build-essential 

WORKDIR /usr/src/app

COPY ./package.json .
RUN npm install
COPY . .
RUN pip install -e ./server

CMD [npm, start]

डोकर-compose.yml:

version: 3

services:
    userportal:
        build: .
        volumes:
            - /usr/src/app/node_modules
            - .:/usr/src/app
        ports:
            - 5000:5000

बोतल सर्वर पोर्ट 5000 इसलिए मानचित्रण को बांधता है। मैं के लिए कंटेनर आईपी पते प्रतिस्थापन की कोशिश की है localhost(उदाहरण के लिए 172.19.0.2:5000), लेकिन एक ही परिणाम।

नोट HAProxy अपने स्वयं के टर्मिनल में चल रहा है और एक कंटेनर के अंदर नहीं है।

13/02/2020 को 23:59
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

आप अग्रिम में अपने कंटेनर आईपी पता होना चाहिए

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

आप HAProxy उपयोग करना चाहते हैं कुछ समय यह इसके अंदर नेटवर्किंग मुद्दों डोकर लिखें सुविधा पर करने के लिए avoir बनाने के लिए और अधिक आसान कर देंगे

आप चाहते हैं, तो आप कोशिश कर सकते हैं: haproxy.conf

global
  maxconn 4096
  pidfile ~/tmp/haproxy.pid

defaults
  log global
  log 127.0.0.1 local0
  log 127.0.0.1 local1 notice
  mode http
  timeout connect 300000
  timeout client 300000
  timeout server 300000
  maxconn 2000
  option redispatch
  retries 3
  option httpclose
  option httplog
  option forwardfor
  option httpchk HEAD / HTTP/1.0


frontend dev
  bind 0.0.0.0:8080 ssl crt ./proxy.pem   // <-- change wildcard with 0.0.0.0
  acl allow_web path_beg /app/
  use_backend be_web if allow_web
  default_backend be_web                  // <-- add this line

backend be_web
  balance roundrobin
  mode http
  option forwardfor                       // <-- add this line
  option httpchk GET / HTTP/1.1           // <-- add this line
  server web_5000 userportal_1:5000 check // <-- change localhost to the nane of running container "userportal_1" or the IP if you get it

Dockerfile:

FROM node:10.6.0

RUN apt-get update
RUN apt-get install -y python-pip python-dev build-essential

WORKDIR /usr/src/app

COPY ./package.json .
RUN npm install
COPY . .
RUN pip install -e ./server

EXPOSE 5000 // <-- add this ine

CMD ["npm", "start"]

डोकर-compose.yml

version: "3"

services:
  userportal:
    build: .
    volumes:
      - /usr/src/app/node_modules
      - .:/usr/src/app
    ports:
      - "5000:5000"

अपने डोकर-compose.yml बहुत मदद मिलेगी में अपने HAProxy शामिल करने के लिए प्रयास करें

14/02/2020 को 00:56
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more