`/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)

solr-centos7

使用二进制搜索的 Java 前缀搜索

Redis实战——安装问题汇总

Servlet / Tomcat相对文件路径

ElasticSearchEs 源码之 IndicesService 源码解读