1

我正在通过 docker compose 文件运行我的容器。它们在同一个网络中,我可以从我的后端容器 ping 到我的数据库容器。我使用数据库名称作为连接字符串中的主机名,它不会带来任何找不到主机的错误。相反,它只是挂断并超时。

我有一个测试端点,它只是假设测试连接。当您使用该端点时,数据库容器会记录“无效的数据包长度”,而在前端,什么也没有发生,然后它就会超时。我不知道出了什么问题。有什么帮助吗?

version: '3.2' 
 services: 
  server: 
   restart: always 
   build: 
    dockerfile: Dockerfile 
    context: ./nginx 
   depends_on: 
    - backend 
    - frontend 
    - database 
   ports: 
    - '5000:80' 
   networks: 
    - app_network  
 database: 
  image: postgres:latest 
  container_name: database 
  ports: 
   - "5432:5432" 
  restart: always 
  hostname: database 
  environment: 
   POSTGRES_PASSWORD: 1234 
   POSTGRES_USER: postgres 
    
backend: 
build: 
 context: ./backend 
 dockerfile: ./Dockerfile 
 image: kalendae:backend 
 hostname: backend 
 container_name: backend 
 environment: 
  - WAIT_HOSTS=database:5432 
  - DATABASE_HOST=database 
  - DATABASE_PORT=5432 
  - PORT=5051
frontend: 
build: 
 context: ./frontend 
 dockerfile: ./Dockerfile 
image: kalendae:frontend 
hostname: frontend 
container_name: frontend 
environment: 
 - WAIT_HOSTS=backend:5051 
 - REACT_APP_BACKEND_HOST=localhost 
 - REACT_APP_BACKEND_PORT=5051 
4

0 回答 0