Java环境构建分为两种,一种是war包一种是jar包(微服务)
Tomcat镜像的制作(war包需要的容器为tomcat)
Dockfile制作如下:
[root@localhost tomcat]# ls
apache-tomcat-8.0.39.tar.gz Dockerfile jdk1.8.0_131.tar.gz ROOT.war
[root@localhost tomcat]# cat Dockerfile
FROM ansible/centos7-ansible
MAINTAINER Complicated
ENV VERSION=8.0.39
RUN yum install wget curl unzip iproute net-tools vim -y && \
yum clean all && \
rm -rf /var/cache/yum/*
ADD jdk1.8.0_131.tar.gz /usr/java
ADD apache-tomcat-${VERSION}.tar.gz /usr/local/
RUN mv /usr/local/apache-tomcat-${VERSION} /usr/local/tomcat
ENV JAVA_HOME /usr/java/jdk1.8.0_131
ENV PATH $PATH:/usr/local/tomcat/bin
WORKDIR /usr/local/tomcat
EXPOSE 8080
CMD ["catalina.sh", "run"]
startup.sh是放在后台,["catalina.sh", "run"]为前台启动
构建镜像,运行容器测试
[root@www docker]# docker build -t centos7-tomcat8.5 .
[root@www docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos7-tomcat8.5 latest 876aeca25d14 3 minutes ago 986MB
ansible/centos7-ansible latest 688353a31fde 3 years ago 447MB
[root@localhost tomcat]# docker run -itd -p 8080:8080 centos7-tomcat:v1
1b5a3344caca8330740b790892fd8d5399189d317a4b07ab2bf3c3d8c8a75198
[root@localhost tomcat]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b5a3344caca centos7-tomcat:v1 "catalina.sh run" 8 seconds ago Up 7 seconds 0.0.0.0:8080->8080/tcp cranky_goodall
[root@localhost ~]# docker exec -it 1b5a3344caca /bin/bash
[root@1b5a3344caca tomcat]# pwd
/usr/local/tomcat
[root@1b5a3344caca tomcat]# echo $JAVA_HOME
/usr/java/jdk1.8.0_131
制作Dockerfile,将你的业务war包打入进去
[root@localhost tomcat]# cd /tomcat/
[root@localhost tomcat]# ls
apache-tomcat-8.0.39.tar.gz Dockerfile jdk1.8.0_131.tar.gz ROOT.war
[root@localhost tomcat]# vim Dockerfile2
[root@localhost tomcat]# cat Dockerfile2
FROM centos7-tomcat:v1
RUN rm -rf /usr/local/tomcat/webapps/*
COPY ROOT.war /usr/local/tomcat/webapps
[root@localhost tomcat]# docker build -t centos7-tomcat:v2 -f Dockerfile2 .
[root@localhost tomcat]# docker run -itd -p 8888:8080 centos7-tomcat:v2
6826032c736b74817b2fca25f7c13035c5cd794f614c141334ad72e7531ef8f5
[root@localhost tomcat]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6826032c736b centos7-tomcat:v2 "catalina.sh run" 21 seconds ago Up 20 seconds 0.0.0.0:8888->8080/tcp competent_rubin
[root@localhost tomcat]# docker logs -f 6826032c736b
2020-11-10 09:01:52.225 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2020-11-10 09:01:52.304 INFO 1 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 76 ms
2020-11-10 09:01:52.397 INFO 1 --- [nio-8080-exec-1] com.ly.controller.IndexController : ----------------????index??--------------->
可以看到项目部署成功