docker - 如何设置liferay进行团队开发和部署?

标签 docker continuous-integration liferay continuous-deployment liferay-7

我正在研究如何设置具有版本控制和自动部署的 liferay 项目。我在eclipse中有一个工作的本地开发环境,但据我了解,在liferay中设置门户部分是在tomcat上运行的liferay门户实例,然后是我的自定义模块项目进行定制。我基本上希望所有这些都在一个 git 存储库中,然后可以

1:由任何开发人员克隆以设置其本地开发环境

2:由例如构建和部署。 Jenkins 进入例如。 AWS

我已经查看了有关为门户创建 docker 容器的 liferay 文档,但我不完全了解如何处理门户内容之类的事情。

如果有人能在如何建立这样的环境方面引导我朝着正确的方向前进,我将不胜感激。

最佳答案

代码和内容是不同的野兽。为每个开发人员设置一个本地 Liferay 实例。通过任何版本控制(您提到 git)共享/版本代码。

这样,每个开发人员都可以在自己的项目上工作、设置断点并创建不会干扰其他开发人员的内容。

设置一个单独的集成测试环境,它只通过你的 CI 服务器获取它的代码,永远不会被手动触及。

您的生产(或预生产)数据库可能具有完全不同的内容:开发人员可以快速创建一些“Lorem Ipsum”帖子和页面,但您不希望它们逃逸到生产中。因此,内容没有从开发到生产的移动。只有代码会这样移动。

如果您希望您的开发人员在类似生产的环境中工作,您可以将生产内容(数据库)恢复到开发机器。请注意,这是有风险的:数据库还包含用户帐户,您可能会从您的开发机器触发更新通知邮件——这是您想不惜一切代价避免的事情。另外,通过这种方式,您可以让开发人员访问可能被滥用的登录数据(即使它已经过哈希处理)。行业法规甚至可能明确禁止在开发环境中使用生产数据。

一般来说:每个系统都有自己的数据库(至少有自己的模式)、文档存储和索引服务器。每个开发人员都有自己的门户 JVM 正在运行。其他环境(集成测试、负载测试、创作、生产)也是独立的环境。不,你不需要所有的时间。

我不能归因于这句话(米伦可以 - 见他的评论),但它在这里成立:

Everybody has a testing environment. Some are lucky to run a completely different production environment.



成为幸运者。如果每个人都有自己完全分离的环境,那么没有人会踩对方的鞋。无论如何,您都需要集成测试(带有 CI 输出)。

关于docker - 如何设置liferay进行团队开发和部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57706743/

相关文章:

docker - 使用 Docker 安装 Perl 的问题

docker - 在 shell 脚本上使用 docker-compose 文件版本 3 的优势?

docker - Docker:错误标志背后的主要原因是什么:0x5001:设备上没有剩余空间

java - 无法运行程序 "mvn"错误=2,没有这样的文件或目录

docker - 如何在 HashiCorp Vault Docker Compose 文件中设置我自己的根 token

github - 仅在上一步已运行的情况下运行GitHub Actions步骤

Jenkins 找不到 nuget 包

performance - Liferay 启动时间太长

java - Liferay IDE portlet 更改未在服务器上同步

events - 覆盖 Liferay 启动事件