将开源应用程序代码的专用文件集成到devopspipe道中

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

我们使用Google的几个API密钥,SendGrid和MySQL数据库validation密钥。 所有这些都存储在application.properties文件中。 我们在GitHub上的代码是一样的,除了这些文件丢失。 目前的解决方法是他们只能在我们部署到Heroku的Heroku远程机器上使用。 每当我们想要部署一个变更时,我们切换到heroku分支,从主分支拉动变化并重新分支这个分支,最后推送它。

我们很快转向了cycle.io,运行集装箱化的应用程序,所以基本上我们转向了Docker 。 我们将有dockerized应用程序和一个MySQL Docker实例部署和相互通信。 引用Cycle

一个环境允许你组织和沟通你的容器。 当您从环境中的容器上单击“开始”时,networking会自动configuration,并通知其存在环境中的任何其他容器。

Cycle.io允许我们自动链接来自Docker Hub的图像,或者将一个git存储库与一个Dockerfile 。 它从那里捡起来,然后自动部署它。

我的问题是,我如何将这个私人文件集成在我的代码构buildtesting部署pipe道? 。 天真地,我正在想方设法在构build之前“注入”这些文件。 我不知道该怎么做。 我目前的docker部署的想法是

  • 在我的本地系统上构build一个docker镜像
  • 将其推送到Docker Hub到一个私有存储库,并允许与Docker集线器集成的cycle.io从那里接收它
  • (我也想整合Tavis / CI,idk怎么样)

有没有SENSIBLE ,或缺乏另一个词,这样做PRO的方式? 我们是一群希望遵循最佳实践的学生,这个应用程序将会扩大规模。 我们已经完全支付部署和域名通行证等,但我们并没有真正的专家指导。

Cycle允许你为每个环境configuration环境variables,并且它们的处理方式与本地机器上的环境variables一样。 这意味着您可以configuration例如SENDGRID_API_KEYvariables,将其设置为循环到您的API密钥(导航到环境 – >容器 – >configuration),并让您的代码直接读取该variables。

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