私信  •  关注

Bruce Becker

Bruce Becker 最近创建的主题
Bruce Becker 最近回复了
5 年前
回复了 Bruce Becker 创建的主题 » 需要一些关于nginx,git和jenkins的建议

第一条规则: 不要向源代码管理提交密码 .

第二条规则:不要在应用程序源代码中硬编码主机名、用户名或密码。

一般来说,尝试遵循 12 factor application 模式。

开发、分段和生产环境的关键是,您可以在多个不同设置的地方运行相同的应用程序源代码。例如,我的日常开发工作流程如下:

  1. 我在本地进行开发,根本不涉及码头工人。我所有的数据库主机名都是 localhost ,密码是 password . 我开发、运行本地测试、启动服务和测试,直到我认为它可以工作为止。

  2. 我构建组件的Docker映像并在本地部署它。这可能是本地Docker撰写安装程序,其中数据库主机名为 database 密码是 密码 .

  3. 我致力于源代码管理并将其推送到一个分支。我的同事回顾了一下。

  4. 我们的CI系统(实际上是Jenkins)构建我的组件,运行它的测试,并将其部署到测试环境中。有一个实际的数据库主机名和一个詹金斯注入的密码。

  5. 如果这一切都很好,并且组合系统在测试环境中工作,那么我合并了我的分支,并告诉Jenkins将其部署到生产环境中。这将使用一个具有真实主机名的非Docker数据库,以及Jenkins注入的密码。

所以:有时我在Docker中运行东西;有时我不运行;相同的应用程序代码在两个地方都可以工作。我不太担心一个环境可能使用与另一个不同的语言运行时补丁版本,并显式声明我的库依赖项( package.json , Gemfile , setup.py / requirements.txt , 等。 )我通过环境变量传入主机名和凭据,这是环境之间唯一的区别。