在DevOps Pipeline中集成开源应用程序代码的私有文件



我有一个Java应用程序,它是我们整个项目的后端,我们的所有软件都是完全开源的。问题如下:

我们使用Google的几个API键,SendGrid到MySQL数据库身份验证键。所有这些都存储在application.properties文件中。我们在github上拥有的代码为同上,只是丢失了这些文件。目前的解决方法是,它们仅在我们部署到Heroku的Heroku遥控器上可用。每当我们希望部署更改时,我们都会切换到Heroku分支,从Master中拉更改并重新换该分支并最终推动它。

我们很快就转移到Cycle.io运行容器化的应用程序,因此我们基本上正在转移到Docker。我们将使应用程序对接,并且部署了MySQL Docker实例并相互通信。从周期引用

环境使您可以组织和交流 容器。当您从环境中单击"启动"时, 网络自动配置并通知任何其他 在其存在环境中的容器。

cycle.io允许我们自动链接来自Docker Hub的图像或具有Dockerfile的GIT存储库。它从那里捡起它,然后自动部署它。

我的问题是,如何将这些私有文件集成在我的代码构建测试中管道中?。天真地,我在想在构建之前对这些文件进行某种方式。我不知道该怎么做。我目前对Docker部署的想法

  • 在我的本地系统上构建docker映像
  • 将其推到docker Hub到私人存储库,并允许Cycle.io,该存储库与Docker Hub集成以从那里捡起
  • (我也想整合塔维斯/CI,idk how)

是否有任何明智的?我们是一群希望遵循最佳实践的学生,此应用程序将扩大规模。我们已经为部署和域名通过等获得了全部薪水,但是我们真的没有任何专家指导。

周期允许您每个环境配置环境变量,并且可以对其本地计算机上的环境变量进行处理。这意味着您可以配置例如sendgrid_api_key变量,将其在周期中设置为API密钥(导航到环境 -> Container-> config),并直接将代码读取该变量。

您可以声明dockerfile(ENV SENDGRID_API_KEY="")中存在的环境变量,并且周期将预先填充这些变量,以便您可以填写框并点击保存。您需要重新启动容器,但是您的变量应适用于您的程序,而无需管理移动文件。

最新更新