【发布时间】:2021-03-10 13:09:04
【问题描述】:
我的机器人、服务器和数据库有 3 个容器。在 docker-compose up 之后,服务器和数据库正在工作。电报机器人执行获取请求并出现此错误: 获取“http://localhost:8080/user/”:拨打tcp 127.0.0.1:8080:连接:连接被拒绝
码头工人-compose.ymlversion: "3"
services:
db:
image: postgres
container_name: todo_postgres
restart: always
ports:
- "5432:5432"
environment:
# TODO: Change it to environment variables
POSTGRES_USER: user
POSTGRES_DB: somedb
POSTGRES_PASSWORD: pass
server:
depends_on:
- db
build: .
restart: always
ports:
- 8080:8080
environment:
DB_NAME: somedb
DB_USERNAME: user
DB_PASSWORD: pass
bot:
depends_on:
- server
build:
./src/telegram_bot
environment:
BOT_TOKEN: TOKEN
restart: always
links:
- server
【问题讨论】:
-
我们可以从中看出,显然没有进程在监听 localhost:8080。考虑提供有关 bot docker 映像的更多信息以帮助您,例如它是如何配置的,或者您是否使用任何库或框架来开发 bot。此外,使用
depends_on和links选项似乎是多余的。 -
localhost在 Docker 中几乎总是意味着“这个容器”; Docker 文档中的Networking in Compose 描述了如何连接到其他容器。在现代 Docker 中,您根本不需要links:。
标签: docker docker-compose docker-swarm