我有这个
docker-compose:
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
dockerfile(python)
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
requests.exceptions.ConnectionError:HTTPConnectionPool(host ='localhost',port = 8084):
为什么?
答案 0 :(得分:1)
您的scraper.py
代码正在尝试连接到localhost:8004
,但是您已经将发布端口8004
的服务放在了单独的容器中。这类似于将其放在单独的计算机上,因此localhost
将无法到达它。相反,您必须使用api:8004
,它将解析为放置该服务的api
容器的IP。
答案 1 :(得分:0)
您的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