gpt4 book ai didi

ruby-on-rails - 在 ElasticBeanstalk 上预部署脚本

转载 作者:行者123 更新时间:2023-12-03 20:54:08 24 4
gpt4 key购买 nike

我正在将 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"

据我所知,这些都没有在部署前运行。它在尝试安装 gem 时失败,因为该目录不存在。当我通过 SSH 进入实例时,LD_LIBRARY_PATH 未设置,并且 source 命令未下载和解压缩任何 zip 文件。

1) 我的语法是否正确 2) 如何让这些命令执行 PRE deploy/bundle install?

最佳答案

EB 有一个特定的文件夹,您可以在其中执行脚本以运行预部署。我在我的 .ebextensions 中创建了一个 .config 文件,其中包含我希望在部署前执行的 bash 命令。它在 "/opt/elasticbeanstalk/hooks/appdeploy/pre/ 中创建一个运行的文件

001_script.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
...
...

关于ruby-on-rails - 在 ElasticBeanstalk 上预部署脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com