我正在尝试将ruby应用程序部署到codedeploy,当它安装Sinatra时,它一直给我一个错误,它需要在服务器上安装更高版本的ruby。如何指定要使用的版本?
我在我的Gemfile中指定了它,在appspecfile中尝试了几种方法
LifecycleEvent - BeforeInstall
Script - scripts/install_dependencies
[stdout]Successfully installed bundler-1.15.4
[stdout]Parsing documentation for bundler-1.15.4
[stdout]Done installing documentation for bundler after 5 seconds
[stdout]1 gem installed
[stdout]Updating installed gems
[stdout]Nothing to update
[stderr]ERROR: Error installing sinatra:
[stderr] rack requires Ruby version >= 2.2.2.
我在appspec.yml文件'
中尝试了这个language: ruby
rvm:
- 2.4.1
- jruby-head
Before_install: # For jruby-head to work.
- gem install bundler
- gem update bundler
任何形式的帮助都会非常棒,谢谢
这是我在尝试上面找到的内容之前的appspec.yml版本
version: 0.0
os: linux
files:
- source: /.
destination: /var/www/html/
hooks:
BeforeInstall:
- location: scripts/install_dependencies
timeout: 300
runas: root
- location: app.rb
timeout: 300
runas: root
ApplicationStop:
- location: app.rb
timeout: 300
runas: root
ApplicationStart:
- location: app.rb
timeout: 300
runas: root
的Gemfile
source 'https://rubygems.org'
ruby "~> 2.3.0"
gem 'sinatra', '2.0.0'
答案 0 :(得分:0)
CodeDeploy appspec实际上不需要支持该选项,每个生命周期事件的脚本都将使用env ruby运行。如果你想运行特定版本的ruby,可能你可以在其中一个脚本中将其更改为默认的ruby版本,用于生命周期事件之一,如BeforeInstall。