获取Tomcat 服务器上的WAR文件,并运行一个Java应用程序。构建一个Docker管道。
WAR文件的获取程序
-
构建一个镜像,这个镜像会下载WAR文件并将其挂载在卷里。
mkdir fetcher cd fetcher touch Dockerfile
编写Dockerfile文件内容
FROM ubuntu:14.04 MAINTAINER xuzq11 <xuzq11@midea.com> ENV REFRESHED_AT 2019-10-15 RUN apt-get -yqq update RUN apt-get -yqq install wget VOLUME [ "/var/lib/tomcat7/webapps/" ] WORKDIR /var/lib/tomcat7/webapps/ ENTRYPOINT [ "wget"] CMD [ "-?" ]
创建镜像
dockerr build -t haliaddel/fetcher .
获取WAR文件
docker run -t -i --name sample haliaddel/fetcher https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample.war
sample.war文件最终会保存到/var/lib/tomcat7/webapps/目录中。
-
创建Tomcat应用服务器
mkdir tomcat7 cd tomcat7 touch Dockerfile
编写Dockerfile
FROM ubuntu:14.04 MAINTAINER xuzq11 <xuzq11@midea.com> ENV REFRESHED_AT 2019-10-15 RUN apt-get -yqq update RUN apt-get -yqq install tomcat7 default-jdk ENV CATALINA_HOME /usr/share/tomcat7 ENV CATALINA_BASE /var/lib/tomcat7 ENV CATALINA_PID /var/run/tomcat7.pid ENV CATALINA_SH /usr/share/tomcat7/bin/catalina.sh ENV CATALINA_TMPDIR /tmp/tomcat7-tomcat7-tmp RUN mkdir -p $CATALINA_TMPDIR VOLUME [ "/var/lib/tomcat7/webapps/" ] EXPOSE 8080 ENTRYPOINT [ "/usr/share/tomcat7/bin/catalina.sh", "run" ]
构建Tomcat7镜像
docker build -t haliaddel/tomcat7 .
-
运行WAR文件
创建一个新的Tomcat实例。docker run --name sample_app --volumes-from sample -d -P haliaddel/tomcat7
–volumes-from标志表明会复用sample容器里的卷。这意味着存储在/var/lib/tomcat7/webapps/卷里的WAR文件会从sample容器挂载到sample_app容器,最终被Tomcat加载并执行。
查看Tomcat应用的端口
docker port sample_app 8080
基于Tomcat应用服务器的构建服务
- 在Docker宿主机安装Ruby
apt-get -qqy install ruby make ruby-dev