我有一个Java应用程序,它作为我们整个项目的后端,我们所有的软件都是完全开源的。问题如下:
我们使用Google的几个API密钥,SendGrid到MySQL数据库身份验证密钥。所有这些都存储在*ngFor
文件中。我们在GitHub上的代码是同上的,除了缺少这些文件。目前的解决方法是它们仅在我们部署到Heroku的Heroku远程上可用。每当我们希望部署更改时,我们都会切换到heroku分支,从master获取更改并重新绑定此分支,最后推送它。
我们很快转移到cycle.io运行容器化应用程序,所以我们基本上转移到Docker。我们将使应用程序停靠并部署MySQL Docker实例并相互通信。引用Cycle
环境允许您组织和沟通 容器。当您点击“开始”时在环境的容器上, 网络自动配置,并通知任何其他人 在其存在的环境中的容器。
Cycle.io允许我们自动链接来自Docker Hub的图像或具有application.properties
的git存储库。它从那里拿起它然后自动部署它。
我的问题是,如何在代码构建测试部署管道中集成这些私有文件?。天真地,我在想某种方式注入'这些文件在构建之前。我不知道怎么做。我目前对docker部署的想法是
是否有 SENSIBLE ,或者缺少其他单词, PRO 这样做的方法是什么?我们是一群希望遵循最佳实践的学生,这个应用程序将扩大规模。我们已经获得了部署和域名通行证的全额报酬,但我们并没有真正的专家指导。
答案 0 :(得分:1)
Cycle允许您为每个环境配置环境变量,并且它们的处理方式与处理本地计算机上的环境变量的方式相同。这意味着您可以配置例如SENDGRID_API_KEY变量,将其设置为循环到您的API密钥(导航到环境 - >容器 - >配置)并让您的代码直接读取该变量。
您可以声明dockerfile(ENV SENDGRID_API_KEY=""
)中存在的环境变量,并且Cycle会预先填充这些变量,以便您只需填写该框并点击保存即可。您需要重新启动容器,但是您的变量应该可供您的程序使用,而无需管理移动文件。