Ruby版本与AWS Codebuild冲突

问题描述 投票:0回答:1

我有一个Rails项目,我正在尝试通过AWS Codedeploy构建它,并且在指定ruby版本时遇到了一些问题。使用AWS Codedeploy标准映像(aws / codebuild / standard:2.0)。我还尝试了在buildspec中放入“ runtime-versions:ruby:2.6.3”的构建,但引发了以下错误:“阶段上下文状态代码:YAML_FILE_ERROR消息:名为ruby的名为'2.6.3'的未知运行时版本。该构建映像具有以下版本:2.6“

这是我在构建时遇到的错误:

[Container] 2020/05/04 19:02:30 Waiting for agent ping
[Container] 2020/05/04 19:02:32 Waiting for DOWNLOAD_SOURCE
[Container] 2020/05/04 19:02:34 Phase is DOWNLOAD_SOURCE
[Container] 2020/05/04 19:02:34 CODEBUILD_SRC_DIR=/codebuild/output/src627814628/src/git-codecommit.us-east-2.amazonaws.com/v1/repos/floppyhats
[Container] 2020/05/04 19:02:34 YAML location is /codebuild/output/src627814628/src/git-codecommit.us-east-2.amazonaws.com/v1/repos/floppyhats/buildspec.yml
[Container] 2020/05/04 19:02:34 Processing environment variables
[Container] 2020/05/04 19:02:34 Selecting 'ruby' runtime version '2.6' based on manual selections...
[Container] 2020/05/04 19:02:34 Running command echo "Installing Ruby version 2.6 ..."
Installing Ruby version 2.6 ...

[Container] 2020/05/04 19:02:34 Running command rbenv global $RUBY_26_VERSION

[Container] 2020/05/04 19:02:34 Moving to directory /codebuild/output/src627814628/src/git-codecommit.us-east-2.amazonaws.com/v1/repos/floppyhats
[Container] 2020/05/04 19:02:34 Registering with agent
[Container] 2020/05/04 19:02:34 Phases found in YAML: 3
[Container] 2020/05/04 19:02:34  INSTALL: 3 commands
[Container] 2020/05/04 19:02:34  PRE_BUILD: 3 commands
[Container] 2020/05/04 19:02:34  BUILD: 2 commands
[Container] 2020/05/04 19:02:34 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED
[Container] 2020/05/04 19:02:34 Phase context status code:  Message: 
[Container] 2020/05/04 19:02:34 Entering phase INSTALL
[Container] 2020/05/04 19:02:34 Running command echo Installing Bundler...
Installing Bundler...

[Container] 2020/05/04 19:02:34 Running command gem install bundler
rbenv: version `ruby-2.6.3' is not installed (set by /codebuild/output/src627814628/src/git-codecommit.us-east-2.amazonaws.com/v1/repos/floppyhats/.ruby-version)

[Container] 2020/05/04 19:02:34 Command did not exit successfully gem install bundler exit status 1
[Container] 2020/05/04 19:02:34 Phase complete: INSTALL State: FAILED
[Container] 2020/05/04 19:02:34 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: gem install bundler. Reason: exit status 1

这是我的buildspec文件:

version: 0.2
phases:
  install:
    runtime-versions:
        ruby: 2.6
    commands:
      - echo Installing Bundler...
      - gem install bundler
      - bundle install
  pre_build:
    commands:
      - echo Preparing database to run tests...
      - RAILS_ENV=test rails db:setup
      - RAILS_ENV=test rails db:migrate
  build:
    commands:
      - echo Running tests...
      - rails test

以及我的gemfile的相关部分

source 'https://rubygems.org'

ruby '2.6.3'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0.2', '>= 6.0.2.2'

感谢您的帮助!

ruby-on-rails amazon-web-services aws-codebuild
1个回答
0
投票

当前,我们在ruby 2.6.5图像中安装了aws/codebuild/standard:2.0。请更改您的gemfile以使用ruby 2.6.5。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.