我在OpsWorks上有一个简单的静态站点层,它在bower.json
文件中列出了依赖项。但是,当我在部署配方中运行bower install --allow-root
时,我得到ENOENT No bower.json present
。如何在Chef脚本中找到正确的项目路径,以便安装bower模块?
答案 0 :(得分:1)
OpsWorks为您的食谱提供包含app目录的部署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
是您最新版本的符号链接。但是,我宁愿在deploy hook script而不是部署配方中执行此类操作,因为OpsWorks在运行部署配方之前使您的应用可用。但这是另一个故事。
希望这有帮助。