Я разработал первую итерацию приложения с использованием Ruby on Rails (ROR - v6.0.0; Ruby - v2.6.3). Мне нужно развернуть его на gcp, облачной платформе Google, так как именно это компания, для которой я работаю. Я следовал этому уроку в Google, как показано здесь . Однако, независимо от того, что я делаю, ближе к концу нажатия я получаю эту ошибку:
8536b8dd72f7: Pushed
f66b9865f45c: Layer already exists
8f213bf0e9c7: Pushed
ce02b74896ad: Pushed
a79efcc05468: Pushed
latest: digest: sha256:93b405b42825c93798db12c14f4f5d5dd09c6fc3e32861a1a1f3947c338e45a2 size: 2419
DONE
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Updating service [default] (this may take several minutes)...failed.
ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error:
Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.3-p62), 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)>'
Странно то, что я пытался следовать учебнику Google с новым приложением rails (та же машина, та же среда), и я получил ту же ошибку. Биллинг включен для учетной записи, поэтому я не думаю, что это так. Приложение работает нормально, когда я запускаю его локально. В любом случае, вот мой файл 'app.yml':
entrypoint: bundle exec rackup --port $PORT
env: flex
runtime: ruby
env_variables:
SECRET_KEY_BASE: [MY_SECRET_KEY_IS_HERE]
Когда я запускаю bundle exec rackup --port 8080
на моей локальной машине, приложение запускается очень хорошо. Я искал по всему и не смог найти решение. Я видел похожие посты, но они либо не отвечают, либо не решают эту проблему. Я рассматриваю «докеризацию» приложения, но не уверен, что это что-то исправит;Но если я правильно понимаю, docker - это способ рассказать другим машинам, как запускать определенный набор инструкций, например приложение, чтобы он мог работать практически на любой машине. Идк, это действительно все, о чем я могу думать. Любые предложения приветствуются и будут оценены.
Спасибо, что уделили время на прочтение этого, и я надеюсь, что у вас будет отличный день.