我有以下厨师食谱:
deploy "/home/prj" do
repo "https://path_to_repo"
user node.project_owner
group node.project_owner
symlink_before_migrate({})
end
如何访问提供者的发布路径?就我而言,将是: /home/prj/releases/20120506125222/ 。
我有以下厨师食谱:
deploy "/home/prj" do
repo "https://path_to_repo"
user node.project_owner
group node.project_owner
symlink_before_migrate({})
end
如何访问提供者的发布路径?就我而言,将是: /home/prj/releases/20120506125222/ 。
这取决于您要访问发布路径的位置。“内部”资源,即回调,很容易使用类似的东西
deploy "/home/prj" do
before_migrate do
gemfile = File.read("#{release_path}/Gemfile")
end
end
在资源之外,您没有可用的 release_path 变量。但是,您可以使用current
指向当前部署版本的符号链接,即最后一个版本:
current_path = "home/prj/current"
release_path = File.readlink(current_path)
大多数时候,您可以直接在 中处理事物,current_path
而无需求助于解析符号链接目标。
也就是说,您通常不想直接在那里实际做事。相反,我们鼓励您在共享目录(即/home/prk/shared
)中生成其他文件,并在部署期间让厨师将这些文件符号链接到版本中。这正是symlink_before_migrate
它的用途。这样,您实际上不需要自己知道发布路径,而是可以让厨师为您处理。