社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Bruce Becker  »  全部回复
回复总数  1
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 , 等。 )我通过环境变量传入主机名和凭据,这是环境之间唯一的区别。