部署到生产环境的正确方法

Posted

技术标签:

【中文标题】部署到生产环境的正确方法【英文标题】:Right way to make deploy to production 【发布时间】:2019-04-15 15:56:55 【问题描述】:

Symfony documentation 表示将 /public/build 文件夹保留在 .gitignore 中

所以当我推送我的文件时,生产中没有构建文件夹,所以我需要构建资产。

但文档还说资产需要在开发服务器上构建。

所以,我需要您就正确的部署方式提出建议。

1) 用 git 推送构建文件夹?

2) 在生产环境中安装yarn、nodeJs 并在git pull 之后部署?

谢谢。

【问题讨论】:

【参考方案1】:

第二个。第一个对我来说总是很奇怪,我通常不想将构建文件推送到 git,就像我不推送我的供应商目录一样。

除了奇怪之外,你还有用于 encore 的 dev 和 prod 配置,所以你必须注意 olny push prod 编译。 (例如:源地图)

另一个问题是资产版本控制 (https://symfony.com/doc/current/frontend/encore/versioning.html)。由于文件名正在更改,您将在更改日志中生成不必要的元素。如果您与团队合作,这也可能会产生 git 冲突。

【讨论】:

【参考方案2】:

有 3 种方法可以做到这一点。 (Symfony 推荐这些。)

1-) 你应该有一个构建服务器。此外,您可以使用 scp 或工具发送构建的文件,这些工具有助于移动文件。 (适用于大型复杂项目。)

2-) 您可以在您的开发机器上构建生产环境,并且您应该移动构建的文件。

3-) 你可以在生产机器上安装 npm 或 yarn。但就个人而言,这是不必要的。这个选项是最后推荐的。

目前,我更喜欢第二种选择。你应该看这个视频:)

https://symfonycasts.com/screencast/webpack-encore/production-build

【讨论】:

【参考方案3】:

我将在本地构建文件并由 Ansible 部署。 谢谢大家。

【讨论】:

以上是关于部署到生产环境的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

如何先使用实体​​框架代码部署到生产环境

一种简单的生产环境部署Node.js程序方法

如何在 zoho crm 中将沙盒编辑代码部署到生产环境

部署生产环境时踩到的一些坑

生产环境部署部署项目到生产环境Linux下

软件项目部署环境