我最近开始尝试使用Docker来帮助设置我们的开发环境,包括:
- Jdk 1.6
- Eclipse
- RabbitVCS
- Tomcat
- MySQL服务器
我们的开发桌面主要运行Ubuntu 16.04操作系统。我会在主机上安装Eclipse和RabbitVCS,并将剩余部分安装在容器中。
如果一切顺利,开发人员应该能够下载一个Docker镜像。运行该镜像应该提供JDK、 Tomcat 和 MySQL服务器。开发人员可以使用RabbitVCS来检出项目。
这使用Docker可行吗?
我最近开始尝试使用Docker来帮助设置我们的开发环境,包括:
我们的开发桌面主要运行Ubuntu 16.04操作系统。我会在主机上安装Eclipse和RabbitVCS,并将剩余部分安装在容器中。
如果一切顺利,开发人员应该能够下载一个Docker镜像。运行该镜像应该提供JDK、 Tomcat 和 MySQL服务器。开发人员可以使用RabbitVCS来检出项目。
这使用Docker可行吗?
在Docker容器中运行JDK / JRE并不可行,因为Eclipse依赖于JRE。
如果你想在本地系统的Eclipse IDE上使用运行在Docker容器中的JDK来进行开发,这是不可行的(尽管可以进行远程调试)。在开发过程中,开发人员需要在他们的主机上安装JDK。对于你的情况,唯一有意义的从容器中运行的是mysql,因为你没有活跃的开发任务存在。
在Docker环境下,一种可能的解决方案是将eclipse + jdk + tomcat放在同一个docker镜像中,并将X11 socket挂载到容器中,以便您可以在本地系统中访问运行在容器中的Eclipse GUI
更多阅读:https://blog.jessfraz.com/post/docker-containers-on-the-desktop/
或者完全放弃Docker,转向全面的虚拟机像virtualbox,你可以找到预先构建的包含Eclipse的镜像(不确定),或者在基础镜像上安装所有所需软件包并在开发人员之间共享。
是可以实现的。
我建议为每个服务(Mysql/Tomcat/JDK)使用不同的容器。您可以使用docker-compose将这些容器连接在一起并自动化许多任务。在dockerhub上已经有很多可用的镜像。
下面是一个简单的示例,展示如何设置自己的docker-compose.yml文件:
services:
tomcat_service:
#contains tomcat & jdk
image: tomcat
volumes:
- /local/path:/path/in/docker
links:
- mysql_service
depends_on:
- mysql_service
ports:
- "80:80"
# - other ports for debugging
mysql_service:
image: mysql
volumes:
#you should keep mysql data on the host, not in container
- /local/path/data:/var/lib/mysql