rails gcloud deploy терпит неудачу на App Engine Flexible Env - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть приложение, работающее в данный момент на Google App Engine. В течение прошлой недели или около того я не смог запустить успешное развертывание (это после нескольких месяцев отсутствия проблем). Я получаю следующую ошибку при запуске gcloud app deploy ...

Updating service [default] (this may take several minutes)...failed.                                                                                                                                         
ERROR: (gcloud.app.deploy) Error Response: [9] 
Application startup error! Code: APP_CONTAINER_CRASHED
I, [2020-04-07T02:40:56.413717 #1]  INFO -- sentry: ** [Raven] Raven 2.12.0 ready to catch errors
Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.4-p104), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: production
* Listening on tcp://0.0.0.0:8080
bundler: failed to load command: rackup (/app/vendor/bundle/ruby/2.6.0/bin/rackup)
Errno::ENOENT: No such file or directory @ rb_sysopen - tmp/pids/server.pid
  /app/vendor/bundle/ruby/2.6.0/gems/puma-3.12.1/lib/puma/launcher.rb:133:in `initialize'
  /app/vendor/bundle/ruby/2.6.0/gems/puma-3.12.1/lib/puma/launcher.rb:133:in `open'
  /app/vendor/bundle/ruby/2.6.0/gems/puma-3.12.1/lib/puma/launcher.rb:133:in `write_pid'
  /app/vendor/bundle/ruby/2.6.0/gems/puma-3.12.1/lib/puma/launcher.rb:106:in `write_state'
  /app/vendor/bundle/ruby/2.6.0/gems/puma-3.12.1/lib/puma/single.rb:103:in `run'
  /app/vendor/bundle/ruby/2.6.0/gems/puma-3.12.1/lib/puma/launcher.rb:186:in `run'
  /app/vendor/bundle/ruby/2.6.0/gems/puma-3.12.1/lib/rack/handler/puma.rb:73:in `run'
  /app/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/server.rb:297:in `start'
  /app/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/server.rb:148:in `start'
  /app/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/bin/rackup:4:in `<top (required)>'
  /app/vendor/bundle/ruby/2.6.0/bin/rackup:23:in `load'
  /app/vendor/bundle/ruby/2.6.0/bin/rackup:23:in `<top (required)>'

Я использую App Engine в гибкой среде. Мой app.yaml довольно стандартный.

entrypoint: bundle exec rackup --port $PORT
env: flex
runtime: ruby

runtime_config:
  dotenv_config: flex-env-config

beta_settings:
  cloud_sql_instances: $MY_INSTANCE

Запуск bundle exec rackup --port 3000 локально не выдает ошибок. Я не верю, что это также проблема с правами доступа к файлам, так как раньше у меня не было проблем с созданием этих файлов при развертывании. Это также, похоже, не является проблемой с кодом, так как я откатил свой код до последнего раза, когда мне удалось успешно развернуть приложение и все еще получать ту же ошибку. Единственное, о чем я могу думать, это то, что я обновил свою ма c до Мохаве, но не уверен, как / почему это повлияет на что-либо.

Помощь / идеи приветствуются!

ОБНОВЛЕНИЕ:

Я добавил строку в свой сценарий развертывания bash, который создает файл tmp/pids/server.pid и развертывает его вместе с кодом (это должно происходить при каждом развертывании, поскольку локальный сервер rails удалит этот файл при завершении работы ). Я также добавил этот файл в свой .gitignore, так как все в каталоге / tmp по умолчанию игнорируется rails.

Я не доволен этим решением, и у меня sh был лучший способ обработки эта ситуация. Но это работает, так что ура для этого. Оставьте это здесь на случай, если кто-то столкнется с той же проблемой. Кто знает, может быть, служба поддержки Google может ответить, но я не буду затаить дыхание :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...