Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

413
Views
Canalización de activos de Webpacker y Rails en Docker: la vista no apunta al activo JS actualizado

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:

  • Si actualizo la vista, puedo ver en la consola que webpacker está compilando.
  • Genera un nuevo activo con caché roto en public/packs admin-7c69920b702f68258e99.js
  • El manifest.json refleja esta actualización "admin.js": "/packs/admin-7c69920b702f68258e99.js"
  • Puedo actualizar la vista repetidamente y, sin embargo, la pestaña de red muestra que el activo anterior se llama admin-4cf5f7c7d6c5ad665fc6.js .

Probé el siguiente proceso, pero no activa una actualización de los activos incluso con el caché deshabilitado.

  • Actualice la vista en el navegador para activar la compilación del paquete web
  • Reinicie el servidor de Rails bloqueando Docker y ejecutando docker-compose up
  • Actualizar la vista

Por 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

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

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).

  • El archivo de configuración 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: false

Esto 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/

  • Así que agregué lo siguiente a mi 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'
  • Luego ejecuta docker-compose up --build

Esto resuelve mágicamente el problema de recarga.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!