Estoy tratando de configurar algunas pruebas de integración con docker compose. Estoy usando docker compose para activar una base de datos postgres y un servidor nodejs. Luego estoy usando broma para ejecutar solicitudes http contra el servidor.
Por algunas razones que no puedo explicar, todas las consultas SQL (incluso las más simples) son extremadamente lentas (+ 1 s).
Suena como un problema de comunicación entre los dos contenedores, pero no puedo detectarlo. ¿Estoy haciendo algo mal?
Aquí está mi archivo docker-compose.yml . El servidor es solo una aplicación express simple
version: "3.9" services: database: image: postgres:12 env_file: .env volumes: - ./db-data:/var/lib/postgresql/data healthcheck: test: pg_isready -U test_user -d test_database interval: 1s timeout: 10s retries: 3 start_period: 0s server: build: . ports: - "8080:8080" depends_on: database: condition: service_healthy env_file: .env environment: POSTGRES_HOST: database NODE_ENV: test init: true healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/healthcheck"] interval: 1s timeout: 10s retries: 3 start_period: 0sEDITAR que estoy usando
Docker version 20.10.2, build 2291f61 macOs BigSur 11.1 (20C69)Intente usar Volume en lugar de Bind Mount para la carpeta de datos cambiando esto:
- ./db-data:/var/lib/postgresql/dataA esto:
- db-data:/var/lib/postgresql/dataY agregando esta sección al final del archivo de redacción:
volumes: db-data:Puede leer más sobre los montajes de enlace frente a los volúmenes aquí
Lo encontré. El problema no está en la ventana acoplable, sino en el compilador. Estoy usando ncc y rompe mi cliente de postgres.
Abrí un problema en su repositorio con un ejemplo reproducible mínimo
https://github.com/vercel/ncc/issues/646
Muchas gracias por tu ayuda