为Java Web应用开发者准备的快速部署Java Web应用的镜像
- 使用Apache作为前端代理,实现动静态资源的分离;
- 默认使用JDK8,可以在构建镜像时指定JDK版本;
- 使用Tomcat7,可以在构建镜像时指定Tomcat版本;
- 内建了apr支持;
- 使用Supervisor实现对镜像内多进程的管理;
镜像内 | GitHub代码 | |
Apache Proxy及虚拟主机配置目录 | /data/wwwconf | conf/data/wwwconf |
Apache DocumentRoot | /data/wwwroot | conf/wwwroot |
Tomcat 目录 | /data/tomcat | N/A |
Tomcat 应用目录 | /data/tomcat/webapps | 可以在运行时通过 -v /home/xxx/webapps:/data/tomcat/webapps的方式映射到host上Java Web应用所在的目录 |
Tomcat 配置目录 | /data/tomcat/conf | conf/tomcat |
Tomcat 日志目录 | /data/tomcat/logs | 可以在运行时通过 -v /home/xxx/logs/tomcat:/data/tomcat/logs 的方式映射到host上,方便查看日志 |
Supervisor 配置文件 | /etc/supervisord.conf | conf/supervisor/supervisord.conf |
Supervisor Tomcat运行脚本路径 | /data/tomcat/bin/supervisord_tomcat.sh | conf/supervisor/supervisord_tomcat.sh |
- JAVA_VERSION:JDK的大版本号, BUILD_VERSION:JDK的小版本号, JAVA_VERSION与BUILD_VERSION一起组成了JDK的版本号,可以在构建镜像时指定,例如:
-e JAVA_VERSION=8u45 -e BUILD_VERSION=b14
必须保证:http://download.oracle.com/otn-pub/java/jdk/$JAVA_VERSION-$BUILD_VERSION/jdk-$JAVA_VERSION-linux-x64.rpm 该文件是存在的,否则下载出错,构建出错。
- TOMCAT_VERSION:Tomcat版本号,可以在构建镜像时指定,例如:
-e TOMCAT_VERSION=7.0.62
必须保证:http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.zip 该文件是存在的,否则下载出错,构建出错。
- 克隆Docker及相关配置文件到本地
git clone https://github.com/docker-images/Dockerfile-javaweb.git
- 构建
cd Dockerfile-javaweb
./build.sh
或者
docker build -t guuuo/javaweb ./Dockerfile-javaweb
- 运行
cd Dockerfile-javaweb
./run.sh
或者
docker run -p 80:80 -p 9001:9001 -p 8080:8080 -t -i guuuo/javaweb
或者 指定静态资源与Java Web应用程序的路径
docker run -v /c/Users/xxx/javaproject/static:/data/wwwroot/static -v /c/Users/xxx/javaproject/webapps:/data/tomcat/webapps -p 80:80 -p 9001:9001 -p 8080:8080 -t -i guuuo/javaweb
- 浏览与高度
- Supervisor控制台: http://< docker-ip >:9001, 比如: http://192.168.59.103:9001
- Tomcat控制台: http://< docker-ip >/manager or http://< docker-ip >:8080/manager, 比如: http://192.168.59.103/manager
- 静态资源: http://< docker-ip >/static, 比如: http://192.168.59.103/static
- Java Web应用:http://< docker-ip >/< context root of java web application >, 比如:http://192.168.59.103/hello-world