我正在通过 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