the*_*ing 3 ruby-on-rails amazon-web-services amazon-elastic-beanstalk
我正在将 Rails 应用程序部署到 AWS。其中一个 gem 具有依赖性,需要在bundle install部署期间运行之前在服务器上安装某些文件。在我的.ebextensions文件中我有以下内容
01-oracle_sdk:
sources:
/usr/lib: https://s3-us-west-2.amazonaws.com/xyz/instantclient-sdk-linux.x64-12.2.0.1.0.zip
02-oracle-basic:
sources:
/usr/lib: https://s3-us-west-2.amazonaws.com/xyz/instantclient-basic-linux.x64-12.2.0.1.0.zip
03-oracle_sql_plus:
sources:
/usr/lib: https://s3-us-west-2.amazonaws.com/xyz/instantclient-sqlplus-linux.x64-12.2.0.1.0.zip
04-container_commands:
00_oracle_dir:
command: "export LD_LIBRARY_PATH=/usr/lib/instantclient_12_1"
Run Code Online (Sandbox Code Playgroud)
据我所知,这些都没有在部署前运行。当它尝试安装 gem 时会失败,因为该目录不存在。当我通过 SSH 进入实例时,LD_LIBRARY_PATH未设置 ,并且命令未下载并解压缩任何 zip 文件source。
1) 我的语法是否正确 2) 如何获取这些命令来执行预部署/捆绑安装?
EB 有一个特定的文件夹,您可以在其中执行脚本来运行预部署。我使用我想要在部署前执行的 bash 命令.config在我的文件中创建了一个文件。它创建一个运行的.ebextensions文件"/opt/elasticbeanstalk/hooks/appdeploy/pre/
001_脚本.config
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/001_oracle.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
bash commands you want executed here
...
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2458 次 |
| 最近记录: |