Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
196 views
in Technique[技术] by (71.8m points)

docker-compose connection between containers

I have 3 containers with my bot, server and db. after docker-compose up, server and db are working. telegram bot does get-request and takes this error: Get "http://localhost:8080/user/": dial tcp 127.0.0.1:8080: connect: connection refused

docker-compose.yml
version: "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
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

When using compose, try using the containers hostname.. in the case your bot should try to connect to

server:8080

Compose will handle the name resolution to the IP you need


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...