Tengo una aplicación Nestjs que intento ejecutar en un contenedor acoplable. Todo funcionó bien hasta hace poco, donde aparece el error Parse Error: Missing expected CR after header value . Estoy tratando de hacer una solicitud http GET a un servidor web de un dispositivo IoT. Además, este error ocurre solo cuando ejecuto la aplicación del servidor dentro de un contenedor acoplable. Cuando lo ejecuto localmente en una máquina con Windows o macos, todo funciona bien.
Intenté usar diferentes versiones de nodejs en docker. 14, 16 y 18. Este error siempre aparece, independientemente de la versión que use. No tengo idea de cómo podría depurar este error, ya que solo ocurre cuando sirvo la aplicación dentro de un contenedor docker.
Este es mi archivo docker:
FROM node:slim RUN mkdir -p /app WORKDIR /app COPY src . COPY package.json . RUN apt update && apt install python3 make g++ -y RUN npm install --force EXPOSE 3000 CMD ["npm", "run", "start:dev"]Según este problema , esto se implementó recientemente en Node v14.20.0, v16.16.0 y v18.5.0. Aparentemente corrige una vulnerabilidad en el analizador HTTP de versiones anteriores.
Los comentarios debajo del problema sugieren varias soluciones si no es posible reparar el cliente, la más fácil de las cuales parece ser establecer el indicador insecureHTTPParser en true al crear el servidor HTTP.
Como alternativa, vuelva a una versión menor anterior de cada una de las versiones de Node.js mencionadas anteriormente.