【问题标题】:First time deployment with Capistrano 3Capistrano 3 的首次部署
【发布时间】:2014-03-27 10:13:19
【问题描述】:

我想用 Capistrano 3 部署一个 Magento 应用程序。假设我将使用 this gitignore file。 由于这些文件不在存储库中,因此它们不会被复制到远程服务器。但是我第一次部署应用程序时应该复制这些文件。 实现这一目标的最佳方法是什么?我应该第一次手动将文件上传到远程服务器吗?我应该使用另一个 .gitignore 并将文件包含在存储库中吗?还是有更好的办法?

【问题讨论】:

    标签: git magento capistrano capistrano3


    【解决方案1】:

    免责声明:我不熟悉 Magento

    对于在每台服务器上第一次部署之前必须运行一次的所有操作,请使用deploy:setup(请参阅docs)。

    您的问题是,capistrano 将默认在您每次部署时创建一个新目录并将其链接为current。因此,即使您为第一次部署复制文件,第二次部署也会使用另一个文件夹。

    我看到了两种方法:

    1. 在每次部署时复制相关文件
    2. 使用 capistrano 创建的 shared 文件夹,仅将文件上传一次(在设置期间),然后在以后部署时相应地复制或链接文件/文件夹

    通常您应该重新考虑您的项目结构。也许最好不要将所有这些文件都放在 gitignore 上,因为它们似乎是您项目中不可或缺的一部分。一般来说,我只在 gitignore 上放置以下内容:

    1. 可重现(例如编译的资产)
    2. 临时(缓存等)
    3. 敏感(包含密码的配置文件)
    4. 本地(例如,每台机器上特定的配置等)

    因此,在您的情况下,您似乎在 .gitignore 上有一些库和类似的东西,我想如果没有这些,您的项目将无法运行。因此,我会将它们添加到存储库中,或者考虑将它们添加为 submodules,如果它们更大并且受第三方更改的影响。

    【讨论】:

    • deploy:setup 在 Capistrano 3 中不再存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 2015-03-07
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多