Estoy ejecutando una aplicación Rails en un contenedor Docker, pero tengo problemas con mi entorno de desarrollo, ya que no puedo obtener cambios de JavaScript de manera confiable para propagarlos a mi aplicación que se ejecuta en localhost.
Descripción de los pasos para identificar el problema:
admin-7c69920b702f68258e99.js"admin.js": "/packs/admin-7c69920b702f68258e99.js"admin-4cf5f7c7d6c5ad665fc6.js .Probé el siguiente proceso, pero no activa una actualización de los activos incluso con el caché deshabilitado.
docker-compose upPor lo general, tengo que detener e iniciar el servidor de Rails por segunda vez para activar la actualización de los activos. Esto parece demasiado vudú para un entorno de desarrollo efectivo.
Me gustaría encontrar una manera de garantizar de manera confiable que los activos más recientes se reflejen en mi entorno de desarrollo sin tener que controlar manualmente los nombres de los archivos de activos para confirmar que se ha realizado la actualización.
¿Hay algún truco para recargar los activos que me podrían faltar?
estoy usando ruby:2.3.7 y Rails 5.2.2.1
Logré resolver el problema y ahora tengo una recarga en vivo de mis activos de JavaScript.
El primer problema que tuve fue el más fácil de resolver e inmediatamente solucionó el problema para los miembros del equipo que se ejecutaban en su máquina local (es decir, no en un contenedor Docker).
webpacker.yml tiene una serie de valores predeterminados con cache_manifest establecido en verdadero. Esto explicaría por qué se sentía como si el navegador se aferrara a una instrucción anterior. Resuelto configurando cache_manifest: falseEsto no resolvió de inmediato el problema de la aplicación que se ejecuta en Docker. Aparentemente, debe configurar webpacker para que se ejecute en su propio contenedor. Consulte las instrucciones oficiales de webpacker aquí: https://github.com/rails/webpacker/blob/master/docs/docker.md
Las siguientes instrucciones me parecieron muy útiles: http://paulsturgess.co.uk/blog/2018/01/09/setup-webpacker-webpack-dev-server-with-docker-compose/
docker-compose.yml version: '3' services: webpacker: build: . environment: - WEBPACKER_DEV_SERVER_PUBLIC=localhost:3035 - WEBPACKER_DEV_SERVER_HOST=localhost command: ./bin/webpack-dev-server --inline true volumes: - .:/myapp ports: - '3035:3035'docker-compose up --buildEsto resuelve mágicamente el problema de recarga.