在 OpsWorks Chef 配方中安装依赖项
Installing dependencies in an OpsWorks chef recipe
我在 OpsWorks 上有一个简单的静态站点层,它具有在 bower.json
文件中列出的依赖项。但是,当我在我的部署配方中 运行 bower install --allow-root
时,我得到 ENOENT No bower.json present
。如何在 chef 脚本中找到项目的正确路径以便安装 bower 模块?
OpsWorks 为您的配方提供包含应用程序目录的部署 JSON。查看 the AWS documentation 了解有关此负载的更多信息。
假设您的 bower.json 在项目的根目录中,您可以在 Chef 配方中添加此命令:
node[:deploy].each do |app, deploy|
execute "bower_install" do
command "bower install --allow-root"
cwd "#{deploy[:deploy_to]}/current"
end
end
此秘诀将为您层中的所有应用程序执行此任务。您可以通过检查 app
变量值为特定应用程序执行它。
#{deploy[:deploy_to]}
是您的应用程序目录,current
是您最新版本的符号 link。但是,我宁愿在 deploy hook script 中而不是在部署配方中执行此类操作,因为 OpsWorks 让您的应用程序在 运行 部署配方之前可用。但那是另外一回事了。
希望这对您有所帮助。
我在 OpsWorks 上有一个简单的静态站点层,它具有在 bower.json
文件中列出的依赖项。但是,当我在我的部署配方中 运行 bower install --allow-root
时,我得到 ENOENT No bower.json present
。如何在 chef 脚本中找到项目的正确路径以便安装 bower 模块?
OpsWorks 为您的配方提供包含应用程序目录的部署 JSON。查看 the AWS documentation 了解有关此负载的更多信息。
假设您的 bower.json 在项目的根目录中,您可以在 Chef 配方中添加此命令:
node[:deploy].each do |app, deploy|
execute "bower_install" do
command "bower install --allow-root"
cwd "#{deploy[:deploy_to]}/current"
end
end
此秘诀将为您层中的所有应用程序执行此任务。您可以通过检查 app
变量值为特定应用程序执行它。
#{deploy[:deploy_to]}
是您的应用程序目录,current
是您最新版本的符号 link。但是,我宁愿在 deploy hook script 中而不是在部署配方中执行此类操作,因为 OpsWorks 让您的应用程序在 运行 部署配方之前可用。但那是另外一回事了。
希望这对您有所帮助。