aws codedeploy的部署问题&;ec2上的ubuntu

aws codedeploy的部署问题&;ec2上的ubuntu,ubuntu,aws-code-deploy,Ubuntu,Aws Code Deploy,我正在使用AWS CodeDeplo插件为jenkins部署一个ruby代码。 Jenkins正在触发部署,部署成功。成功我的意思是说将文件复制到服务器是成功的 服务器运行在ubuntu 14.04和Ruby2.3.1上 部署后,将执行.sh文件。这些详细信息通过appspec.yml文件进行维护。appspec.yml文件中提到了以用户身份执行:devops 正在执行.sh文件,但结果不成功 问题如下: 1..sh文件中的命令包括gem安装。 2.执行的执行会导致错误,因为它总是引用ruby

我正在使用AWS CodeDeplo插件为jenkins部署一个ruby代码。 Jenkins正在触发部署,部署成功。成功我的意思是说将文件复制到服务器是成功的

服务器运行在ubuntu 14.04和Ruby2.3.1上

部署后,将执行.sh文件。这些详细信息通过appspec.yml文件进行维护。appspec.yml文件中提到了以用户身份执行:devops

正在执行.sh文件,但结果不成功

问题如下: 1..sh文件中的命令包括gem安装。 2.执行的执行会导致错误,因为它总是引用ruby 1.9.3,而不是2.3.1

我们分析了目录/代码部署日志文件,发现如下: 1.codedeploy代理目录由具有4位数字值的用户拥有,例如3456 2.在打印ruby-v时,它的打印格式为1.9.3,即使从终端打印,它也始终显示为2.3.1 3.日志显示了一个错误,即一些gem安装失败,因为没有权限写入gems/1.9.1目录

当我们从终端执行.sh文件时,执行总是成功的


可以关注一下我哪里做错了吗?

CodeDeploy代理没有shell env

因为我在部署代码的机器上使用rvm,并且在我的.sh文件之上,我将

#!/bin/bash
source /etc/profile.d/rvm.sh
rvm use 2.3.0 
#rest of your commands

这对我来说很好。

您在机器上使用rvm吗?