Я запускаю свои контейнеры через файл docker compose. Они находятся в одной сети, и я могу пинговать из своего внутреннего контейнера в контейнер базы данных. Я использую имя базы данных в качестве имени хоста в строке подключения, и это не приводит к ошибкам, связанным с невозможностью найти хост. Вместо этого он просто зависает и время ожидания истекает.
У меня есть тестовая конечная точка, которая должна просто проверить соединение. Когда вы используете эту конечную точку, контейнер базы данных регистрирует «недопустимую длину пакета», и на интерфейсе ничего не происходит, а затем истекает время ожидания. Понятия не имею, что не так. Любая помощь?
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