我正在研究使用 Docker 来标准化开发人员的 Java 工作站配置的可能性。其理念是,团队中的新开发人员可以快速轻松地使用开发/构建和部署所需的所有工具。
我了解在构建管道中,甚至在生产环境中使用 Docker 的吸引力,但很难看出它是否可以作为开发工作站中的工具使用。
例如,拥有一个装有 Eclipse 的 docker 容器,并且配置了必要的插件(和构建工具 - 例如:maven、ant 等)、一个用于数据库的容器、一个用于应用程序服务器的容器。
当然,我可以预见到如果有人试图在 Eclipse 中编辑代码并且想要在应用服务器中热交换代码(如果应用服务器位于不同的容器中)则会增加复杂性。
如何利用基于容器的环境成功且高效地实现这一目标?
答案1
回答元问题
流浪汉是一款用于设置和配置开发人员工作站的工具。在继续使用 Docker 之前,您应该先了解一下它。
回答 Docker 问题
如果你决定使用 docker 路线,那么Docker 组成是您选择的工具。您的所有容器都将在 Compose 文件中指定,例如:
dev:
eclipse:
image: eclipse
db:
image: mysql
ports:
- "3306:3306"
volumes:
- .:/db
server:
image: myapp_server
ports:
- "port:port"
然后,只需运行docker-compose up。
你可以在 Docker Hub 找到你需要的许多容器
答案2
如果我是你,我会将几个任务分开 - 并以不同的方式处理它们。对于本地开发人员环境,我建议使用 Puppet / Terraform / Chef(或任何其他配置管理工具),它可以设置 Eclipse 和其他 GUI 相关工具(Puppet 处理多个包管理器,在 Windows 上也可以使用 Chocolatey)。
非 GUI 类型的资源(如 SQL 服务器、缓存服务器、应用程序服务器/容器)可以在 Docker 中定义(当然使用 -compose)- 主机和容器之间共享一些卷。这两种解决方案都可以在 GIT 中进行管理和跟踪。