He estado luchando con una situación durante el último día y realmente no pude encontrar nada que me ayudara a resolverla:
Tengo un proyecto Svelte + Flask que he estado ejecutando directamente en mi host durante un tiempo, pero recientemente decidí dockerizar tanto el servicio frontend como el backend en el mismo contenedor.
Ahora, al desarrollar la parte de interfaz, usé npm run dev para iniciar el servicio de interfaz y hacer que se vuelva a cargar cada vez que realice cambios en el código. El problema es que cuando ejecuto lo mismo dentro del contenedor, no sucede nada cuando actualizo el código. Sé con certeza que el código que escribo en el host se coloca en el contenedor usando el volumen definido en docker-compose.
Honestamente, soy bastante nuevo en la creación de contenedores en general, por lo que no me sorprendería si es algo que me perdí.
Como referencia, aquí está mi Dockerfile:
FROM nikolaik/python-nodejs:python3.9-nodejs16-slim WORKDIR /opt/myproject COPY . . RUN pip3 install -r server/requirements.txt RUN cd client && npm install && npm run-script build EXPOSE 5000 ENV FLASK_ENV="development" ENV FLASK_APP="/opt/myproject/server/src/start.py" CMD ["/bin/sh", "/opt/myproject/start_services.sh"]Hice un script para ejecutar Gunicorn en el backend además de npm run dev:
#!/bin/sh cd /opt/myproject/server/src gunicorn --bind 0.0.0.0:5000 --reload --daemon start:app cd /opt/myproject/client npm run devAquí está mi composición, si también es necesaria:
# docker-compose.yml version: '3.9' services: web: image: myproject_main container_name: myproject_main_container ports: - "5000:5000" dns: - 8.8.8.8 volumes: - ./myproject_code:/opt/myproject networks: default: external: true name: myproject_net¡Muchas gracias!