`/home/webapp` 不是目录 - Elastic Beanstalk (RAILS)
Posted
技术标签:
【中文标题】`/home/webapp` 不是目录 - Elastic Beanstalk (RAILS)【英文标题】:`/home/webapp` is not a directory - Elastic Beanstalk (RAILS) 【发布时间】:2019-05-25 16:38:24 【问题描述】:我正在尝试将 Rails 5 应用程序部署到 Elastic Beanstalk,但我的日志文件中出现以下错误,表明我的主目录设置不正确。
我尝试通过将HOME
设置为~/my-app-name
来设置HOME
环境变量,但我没有运气,而且它似乎并没有使用该变量。我在环境配置中的软件部分下设置了变量。
/var/log/eb-activity.log
:
+ cd /var/app/ondeck
+ su -s /bin/bash -c 'bundle exec
/opt/elasticbeanstalk/support/scripts/check-for-rake-task.rb assets:precompile' webapp
`/home/webapp` is not a directory.
Bundler will use `/tmp/bundler/home/webapp' as your home directory temporarily.
+ '[' false == true ']'
+ su -s /bin/bash -c 'bundle exec rake assets:precompile' webapp
`/home/webapp` is not a directory.
Bundler will use `/tmp/bundler/home/webapp' as your home directory temporarily.
rake aborted!
Psych::SyntaxError: (<unknown>): did not find expected alphabetic or numeric
character while scanning an alias at line 83 column 22
/var/app/ondeck/config/environments/production.rb:96:in `block in <top (required)>'
/var/app/ondeck/config/environments/production.rb:1:in `<top (required)>'
/var/app/ondeck/config/environment.rb:5:in `<top (required)>'
/opt/rubies/ruby-2.5.3/bin/bundle:23:in `load'
/opt/rubies/ruby-2.5.3/bin/bundle:23:in `<main>'
Tasks: TOP => environment
(See full trace by running task with --trace) (Executor::NonZeroExitStatus)
我在这里发现了一个类似的问题:issue deploying rails 5 application to AWS using Elastic Beanstalk due to rb-readline
我昨天还问了另一个关于psych
错误的问题(下面发布了链接),但我开始认为这个错误可能是由于对HOME
的无效引用引起的。在这一点上,我很迷茫,并且已经为此工作了几个小时,但绝对没有运气。
我昨天发布的另一个关于心理错误的问题: Error Deploying on Elastic Beanstalk - Rails
【问题讨论】:
您写了“另一个问题”和“其他问题”,但我在这里看不到任何问题。你有什么问题? @sawa ***.com/questions/53937817/… 我认为这个问题与心理错误有关。我没有使用弹性 beanstalk 修改我的 Rails 部署的主目录,并且在 eb-activity 日志文件中收到相同的警告,但它从未引起任何问题。 【参考方案1】:红宝石:2.7.0 导轨:6.0.2.1 Solidus:v2.10.0
只需将下面的“命令”部分添加到您的.ebextensions/packages.config
添加所需的命令:
# Setup linux packages
option_settings:
- option_name: BUNDLE_DISABLE_SHARED_GEMS
value: "1"
- option_name: BUNDLE_PATH
value: "vendor/bundle"
packages:
yum:
git: []
ImageMagick: []
ImageMagick-devel: []
openssl-devel: []
postgresql93-devel: []
commands:
01_node_get:
# run this command from /tmp directory
cwd: /tmp
# flag -y for no-interaction installation
command: 'curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -'
02_node_install:
# run this command from /tmp directory
cwd: /tmp
command: 'sudo yum -y install nodejs'
03_yarn_get:
# run this command from /tmp directory
cwd: /tmp
# don't run the command if yarn is already installed (file /usr/bin/yarn exists)
test: '[ ! -f /usr/bin/yarn ] && echo "yarn not installed"'
command: 'sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo'
04_yarn_install:
# run this command from /tmp directory
cwd: /tmp
test: '[ ! -f /usr/bin/yarn ] && echo "yarn not installed"'
command: 'sudo yum -y install yarn'
05_home_dir:
test: '[ ! -p /home/webapp ] && echo "webapp not exited"'
command: 'sudo mkdir -p /home/webapp'
06_grant_home_dir:
test: '[ ! -p /home/webapp ] && echo "webapp not exited"'
command: 'sudo chmod 777 /home/webapp'
来源:https://medium.com/@tranduchanh.ms/deploy-and-manage-production-rails-5-app-with-aws-elastic-beanstalk-3efb0dfe021a
【讨论】:
以上是关于`/home/webapp` 不是目录 - Elastic Beanstalk (RAILS)的主要内容,如果未能解决你的问题,请参考以下文章
无法将 IP 地址“xxx”的 RSA 主机密钥添加到已知主机列表 (/home/webapp/.ssh/known_hosts)