Эта ошибка внезапно затронула все наши 3 приложения Rails на Render.com. Кодовая база не изменилась, но развертывание внезапно перестало быть успешным.
Во время сборки на Render.com, особенно во время предварительной компиляции ресурсов, мы теперь видим следующие строки лога:
INFO** Execute assets:precompile
INFOrake aborted!
INFOJSON::ParserError: 859: unexpected token at '==> Using Node version 14.17.0 (default)
INFO==> Docs on specifying a Node version: https://render.com/docs/node-version
INFO==> Using Bun version (default)
INFO==> Docs on specifying a bun version: https://render.com/docs/bun-version
INFO["ok"]'
INFO/opt/render/project/rubies/ruby-3.1.1/lib/ruby/3.1.0/json/common.rb:216:in `parse'
INFO/opt/render/project/rubies/ruby-3.1.1/lib/ruby/3.1.0/json/common.rb:216:in `parse'
[...]
INFO==> Uploading build...
INFO==> Build uploaded in 12s
INFO==> Build successful 🎉
INFO==> Deploying...
INFO==> Using Node version 14.17.0 (default)
Тогда сборка кажется успешной, но после запуска:
[104] Puma starting in cluster mode...
INFO[104] * Puma version: 5.6.8 (ruby 3.1.1-p18) ("Birdie's Version")
INFO[104] * Min threads: 2
INFO[104] * Max threads: 2
INFO[104] * Environment: production
INFO[104] * Master PID: 104
INFO[104] * Workers: 2
INFO[104] * Restarts: (✔) hot (✖) phased
INFO[104] * Preloading application
INFO[104] * Listening on http://0.0.0.0:10000
INFO[104] Use Ctrl-C to stop
INFO[104] - Worker 0 (PID: 109) booted in 0.0s, phase: 0
INFO[104] - Worker 1 (PID: 113) booted in 0.0s, phase: 0
INFO==> Your service is live 🎉
Каждый запрос завершается с ошибкой с каким-либо вариантом следующей ошибки:
CRITICALF, [2024-05-31T08:10:58.076796 #109] FATAL -- : [da58ff63-3c0c-4f42-bfe3-a3a243352908]
ERROR[da58ff63-3c0c-4f42-bfe3-a3a243352908] ActionView::Template::Error (The asset "searches/show.css" is not present in the asset pipeline.
INFO):
INFO[da58ff63-3c0c-4f42-bfe3-a3a243352908] 1: <% content_for :head do %>
INFO[da58ff63-3c0c-4f42-bfe3-a3a243352908] 2: <%= stylesheet_link_tag 'searches/show' -%>
INFO[da58ff63-3c0c-4f42-bfe3-a3a243352908] 3: <%= stylesheet_link_tag 'elements/filters' -%>
INFO[da58ff63-3c0c-4f42-bfe3-a3a243352908] 4: <% end %>
Это начало происходить 30 мая одновременно для всех наших приложений Rails, работающих на Render.com.
Когда ресурсы предварительно скомпилированы локально, проблема не возникает. Таким образом, единственное решение, которое мы нашли на данный момент, — это предварительно скомпилировать ресурсы локально, а затем загрузить их. Но это не идеально и не долгосрочно.
Скорее всего, это влияет на многие приложения Rails на Render. Любая помощь будет принята с благодарностью!
Мы решили эту проблему, добавив node --version;
к нашей команде сборки в разделе «Настройки» > «Сборка и развертывание». Наша полная команда сборки теперь выглядит следующим образом:
node --version; bundle install; bundle exec rake assets:clean assets:precompile; bundle exec rake db:migrate;
В поддержке Render недавно разъяснили, почему так произошло, вот что мне написали:
Добавление
node --version
заставляет Node загружаться в среду, тогда как раньше он все время загружался автоматически. Мы внесли это изменение для динамической загрузки языков, поэтому, если мы не обнаруживаем Node, мы не загружаем его в среду.
Проблема, описанная здесь, кажется такой же: Community.render.com/t/…