【问题标题】:Issues with the format of .cpanel.yml file when trying to deploy cpanel git repository to directory.尝试将 cpanel git 存储库部署到目录时出现 .cpanel.yml 文件格式的问题。
【发布时间】:2019-03-12 08:10:11
【问题描述】:
  • 我正在使用一个 cpanel 网络管理系统。
  • 我用它创建了一个 git 存储库。
  • 我可以将我的本地代码推送到该 git 存储库。

当我尝试将存储库中的代码部署到服务器上的生产目录时,就会出现问题。

根据cpanel documentation about deployment,为了部署,git 存储库必须包含一个.cpanel.yml 文件,该文件使用以下示例数据提交:

---
deployment:
  tasks:
    - export DEPLOYPATH=/home/user/public_html/
    - /bin/cp index.html $DEPLOYPATH
    - /bin/cp style.css $DEPLOYPATH

为了能够部署,我尝试了此文件的各种不同配置,但无法使其工作。我找不到更多文档或任何进一步的开发示例或示例文件。

我的linux服务器的相关结构是这样的:

home/<username>/
    - git/gitrepo/
        - all of the git files and folders
    - public_html/<app_folder>/

我想将 git 存储库中的所有文件和文件夹部署到 public_html/&lt;app_folder&gt;/ 目录中。

我尝试了以下不同的配置:

---
deployment:
      tasks:
        - export DEPLOYPATH=/home/<username>/public_html/<app_folder>
        - / $DEPLOYPATH

---
deployment:
  tasks:
    - export DEPLOYPATH=/home/user/public_html/
    - /bin/cp  $DEPLOYPATH

---
deployment:
  tasks:
    - export DEPLOYPATH=/home/user/public_html/
    - / index.html $DEPLOYPATH // Tried just one file to see if would work but it didn't.
---
deployment:
  tasks:
    - export DEPLOYPATH=/home/user/public_html/
    - /bin/cp index.html $DEPLOYPATH // Tried just one file to see if would work but it didn't.

【问题讨论】:

  • 嘿Aviya,你的问题解决了吗?如果修复了,你能告诉我哪个有效吗??
  • @AmanJham 接受的答案对我很有效并解决了我的问题。它不适合你吗?

标签: linux git cpanel


【解决方案1】:

所以这基本上是一个 bash 脚本,当您更新存储在服务器上的存储库时,CPanel 会运行该脚本。您的情况下的布局应该是:

如果您要复制示例,请删除所有“# cmets”,否则可能无法正常工作

---
deployment:
      tasks:
        - export DEPLOYPATH=/home/<username>/public_html/<app_folder>
        - /bin/cp <file_name> $DEPLOYPATH #Copy specific file to destination from root
        - /bin/cp /<sub_folder>/<file_name> $DEPLOYPATH #copy specific file from source sub folder
        - /bin cp * $DEPLOYPATH #copy all from root 
        - /bin cp /<sub_folder>/* $DEPLOYPATH #copy all from sub folder root

所以上面应该对你有用.....但是......

如果您将整个根目录复制到目的地,那么这里就是我用来复制所有内容的那个。

---
deployment:
  tasks:
    - export DEPLOYPATH=/home/<user_name>/public_html #Add /<sub_folder> if required
    - /bin/cp -r * $DEPLOYPATH
  • /bin/cp“复制命令”
  • -r "递归包含子文件夹/文件"
  • '*' "全部"

如果你需要public_html以外的应用文件夹,记得添加/&lt;sub_folder&gt;

你可以从我的 repo 中获取文件:

https://github.com/FrancoisGeyser/cPanel-yml.git

希望对您有所帮助。

【讨论】:

  • 嗨,弗朗索瓦,非常感谢您的详尽回答。我只是想说我很忙,以后只有时间来处理这个了。但我肯定会这样做,如果它有效,我一定会把它标记为答案。现在我赞成你。 (当你给出一个好的答案并继续被忽略时,这可能会很烦人,所以我想让你知道情况并非如此!欢迎来到堆栈溢出!)
  • 工作!当然,周五晚上提供了最好的机会来最终检查一下哈哈。非常感谢!
  • 如果我们必须将它添加到我们的代码文件夹顶级目录或 Cpanel 顶级目录中,我有点困惑@Francois。提前致谢
  • 嗨哈马德。它需要在您的代码文件夹顶层目录/根目录中。
猜你喜欢
  • 2019-11-21
  • 2018-07-15
  • 2013-02-14
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多