Estoy tratando de iniciar un contenedor Docker con un proyecto de reacción, el proyecto se crea usando npm init react-app.
Este es mi archivo docker
# Specify a base image FROM node:alpine WORKDIR /usr/app # Install some depenendencies COPY ./package.json ./ RUN npm install COPY ./ ./ # Default command CMD ["npm", "run", "start"] Docker build . crea una imagen con éxito (con muchas advertencias de npm) y luego, cuando ejecuto Docker run <image> , esta es la salida en mi terminal
> mytest@0.1.0 start /usr/app > react-scripts start ℹ 「wds」: Project is running at http://172.17.0.2/ ℹ 「wds」: webpack output is served from ℹ 「wds」: Content not from webpack is served from /usr/app/public ℹ 「wds」: 404s will fallback to / Starting the development server... Tan pronto como llega Starting the development server... deja de ejecutarse en mi terminal. Si Docker ps , puedo ver que no se están ejecutando contenedores, si ejecuto Docker ps -a , puedo ver que se inició un contenedor y luego se salió de inmediato.
Los Docker logs muestran la salida del terminal anterior, ¿alguien se encuentra con esta situación? Es solo con mi proyecto npm init react-app, mis otros proyectos nodejs + express funcionan bien con exactamente el mismo archivo docker
Entonces, nada está mal con la configuración, resulta que hay un problema abierto para esto.
https://github.com/facebook/create-react-app/issues/8688
Bajar de categoría a 3.4 soluciona por ahora
Intenté bajar de categoría pero no funcionó. Lo que funcionó para mí está en el archivo docker-compose en el sector de la aplicación de reacción que agregué:
stdin_open: trueEsta solución también se sugiere aquí: problema en github
docker run -it -p 80:3000 imagename resuelve mi problema.
Ejecutar el comando con -it para mí:
docker run -it -p 3001:3000 ImageidMe encontré con el mismo problema. -la bandera resolvió el problema.
docker run -it -p 3001:3001 <image-id>Tengo el mismo problema que tú y simplemente ejecuté el comando anterior para solucionarlo:
sudo docker run -it -p 3001:3000 Image-Name
Espero eso ayude
Resuelvo el problema. Inside package.json reemplaza "react-scripts": "3.4.1" a "react-scripts": "3.4.0"
Luego reconstruya la imagen y ¡Funciona! Confunden algo con los scripts de reacción": "3.4.1" Solo usa la versión 3.4.0
También puede usar lo siguiente con el indicador -itd .
sudo docker run -itd -p 3001:3000 Image-NameUsando la sugerencia mencionada en este ans. en stackoverflow y en github , de agregar
ENV CI=true para el Dockerfile antes de que CMD ["npm", "run", "start"] funcionara.
No estoy seguro de por qué esto funciona. Puede que tenga algo que ver con este punto. Puede leer más sobre el env CI=true en los documentos de reacción.