我们正在评估 Docker 在部署应用程序方面的用途。到目前为止,我们无法从互联网上了解到如何处理我们公司使用的不同运行时环境。
为了简单起见,我们假设我们有一个测试环境和一个生产环境。如果我要将 Application-X 部署到测试环境,我会将命令行选项传递给 Maven 或 Gradle,使其使用特定配置,例如将其指向 Service-X-Test。
当部署到生产环境时,Application-X 将使用指向 Service-X-Prod 的配置进行构建。
Docker 可以处理这种事情吗,或者我完全没有理解 Docker 的重点?
我们确实有一些较新的应用程序,它们在运行时使用 Spring 和 Groovy 脚本管理配置,但遗憾的是,这些只是例外,而不是常态。Docker 似乎与这些新应用程序配合得很好。
答案1
参考一下这个演示:
跳转到 21:09 标记,解决方案是使用固定域名(在您的例子中是 Service-X-Prod)。在开发人员测试环境中,您将配置 /etc/hosts 文件,以便指向 Service-X-Prod 的流量将路由到 Service-X-Test。
我认为这是一个真正的解决方案,因为它实现了两件事:通过消除由于环境变化而重新路由流量的需要来保持容器的完整性,并且不再需要为测试和生产进行单独的配置。