簡體   English   中英

為什么在docker-compose中使用python出現ConnectionError?

[英]Why ConnectionError using python in docker-compose?

我有這個

碼頭工人組成:

version: '3.3'

services:
  bd_mySql:
    image: mysql:5.7     
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_USER: razvan
      MYSQL_PASSWORD: PepitoElDeLosPalotes
      MYSQL_ROOT_PASSWORD: PepitoElDeLosPalotes
      MYSQL_DATABASE: equipojugadores
  api:
    build: data
    restart: always
    ports:
      - "8084:8084"
  python:
    build: python
    restart: on-failure
    depends_on: 
      - api      

dockerfile (python)

FROM python:latest

ADD scraper.py /

RUN pip install BeautifulSoup4
RUN pip install html5lib
RUN pip install requests
RUN pip install lxml

CMD [ "python", "scraper.py" ]

我的一些python代碼 我有這個錯誤:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8084):

為什么?

您的scraper.py代碼正在嘗試連接到localhost:8004 ,但是您已將通告端口8004的服務放置在單獨的容器上。 這類似於您將它放在單獨的機器上,因此localhost將無法訪問它。 相反,您必須使用api:8004 ,它將解析為api容器的 IP,這是您放置此服務的位置。

您的 py 代碼正在嘗試與 localhost 連接,因為您需要在 python 部分提供鏈接。
之后,您可以調用請求http://api:8084/apiname
這對我有用:

api:
    build: data
    restart: always
    ports:
      - "8084:8084"
python:
    build: python
    restart: on-failure
    depends_on: 
      - api
    links:
      - api

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM