厨师和 git 结帐

Posted

技术标签:

【中文标题】厨师和 git 结帐【英文标题】:Chef and git checkout 【发布时间】:2016-06-14 11:20:28 【问题描述】:

我目前正在使用 chef 在 opsworks 上部署服务器,然后使用“部署”配方,从私有存储库部署应用程序。

一切都按预期工作,因为我的 repo 被正确克隆。虽然它克隆了我的目录,但我最终得到了许多子目录,例如

当前 发布

我想做的只是让主分支不在子文件夹中,所以我本质上是从 git 获取我的网络应用程序的根目录。

我目前的厨师代码看起来像

deploy '/var/www/html' do
  repo 'myrepo.git'
  git_ssh_wrapper "/git-ssh-wrapper" # For private Git repos 
  deploy_to '/var/www/html'
  symlink_before_migrate.clear
  create_dirs_before_symlink.clear
  purge_before_symlink.clear
  symlinks.clear
  action :deploy
end

我不确定上面的“操作”是否不正确,或者我应该使用“deploy_revision”而不是在此处部署?

谢谢

【问题讨论】:

你是怎么解决这个问题的?它是您需要的稀疏结帐和浅层克隆吗?看起来 chef 的 git 资源并没有提供我们解决该案例所需的一切。 【参考方案1】:

使用git 资源而不是deploy 资源。

【讨论】:

抱歉延迟接受。我对 chef 不太熟悉,所以必须熟悉 git 资源上的选项。也许您可以为其他查看此问题的人扩展您的答案(例如 git_ssh_wrapper 应该只是 ssh_wrapper 并且 'action :deploy' 不存在等,因为我只是通过反复试验发现了其中的一些(显然没有仔细阅读文档!) 您可以在 Chef 文档 (docs.chef.io/resource_git.html) 中找到所有内容,包括顶部的示例。 正如我所说,我找到了文档,但只是认为扩展您的答案可能会更好,而不仅仅是为潜在的未来观众提供链接,因为显然 url 并不总是永久的,然后一切都会在一个地方,但没关系。 复制粘贴 Chef 文档似乎是在浪费大家的时间。我的答案很可能会过时,而不是 Chef 文档将不复存在。

以上是关于厨师和 git 结帐的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 Jenkins 结帐和 git 插件 SSL 验证?

Android Studio git 结帐

Git结帐只是中止

结帐时git内存不足

GIT结帐保留本地更改但之前没有? [复制]

sh 分支名称中的Git结帐号码