![](/img/trans.png)
[英]docker-compose: Why is my python application being invoked here?
[英]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" ]
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.