我刚开始尝试使用docker来查看它是否有助于设置我们的开发环境,其中包含
我们的开发桌面主要是Ubuntu 16.04。我将eclipse,RabbitVCS安装在主机上,其余的安装在容器中。
如果一切顺利,开发人员应该能够下载Docker镜像。运行该映像应该为他们提供JDK,Tomcat和MySQL服务器。然后开发人员可以开始使用RabbitVCS来检查项目。
这对Docker来说是否可行?
答案 0 :(得分:7)
不可行在主机操作系统中运行eclipse并在容器中使用JDK / JRE,因为eclipse依赖于JRE。类似地,你不能在一个容器中使用tomcat而在另一个容器中使用JRE / JDK,因为tomcat需要运行JRE。
我会eclipse,RabbitVCS安装在主机上,其余的安装在容器中.......运行该映像应该给他们JDK,Tomcat和MySQL服务器
您是否尝试使用在docker容器(以及在主机操作系统上运行的Eclipse IDE)上运行的JDK进行活动开发?如果是这种情况,它不可行(可以说,你可以进行远程调试;但请记住,调试与主动开发非常不同)。它不是码头工人的意图。在开发过程中,您的开发人员可能需要在其主机本身中安装JDK。在你的情况下,从容器运行只有明智的事情是mysql,因为你没有任何积极的开发。
在docker-land中,一个可能的解决方案是,在同一个docker镜像中使用eclipse + jdk + tomcat并将X11套接字安装到容器中,这样就可以将容器中运行的eclipse GUI暴露给主机操作系统
更多内容请点击此处:https://blog.jessfraz.com/post/docker-containers-on-the-desktop/
或者只是抛弃Docker并转到像virtualbox这样的成熟虚拟机,您可能能够找到带有eclipse的预建图像(不确定),或者您可以在安装完所有需要之后构建一个在基本映像上打包并在开发人员之间共享。
答案 1 :(得分:2)
是的,这是可行的。
我建议为每个服务使用不同的容器(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
上面使用的每张图片都会自动从dockerhub下载: tomcat,java,mysql
编辑: jdk和tomcat在同一个容器中会更好