闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群

dockerfile 定制 tomcat+nginx 集群

  • 前言(来张图)
  • 一、dockerfile撰写 tomcat 镜像
  • 二、dockerfile撰写 nginx 镜像
  • 三、查看镜像构建情况
  • 四、分别开启nginx和tomcat
  • 五、测试

前言(来张图)

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第1张图片

一、dockerfile撰写 tomcat 镜像

FROM centos:7.4.1708
COPY jdk-8u201-linux-x64.rpm /opt
ADD apache-tomcat-9.0.16.tar.gz /opt
RUN cd /opt && rpm -qpl jdk-8u201-linux-x64.rpm \
    && rpm -ivh jdk-8u201-linux-x64.rpm 
ENV JAVA_HOME /usr/java/jdk1.8.0_201-amd64
ENV CLASSPATH .:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV PATH $JAVA_HOME/bin:$PATH 
RUN mv /opt/apache-tomcat-9.0.16 /usr/local/tomcat \
    && mkdir /usr/local/tomcat/webapps/lucien \
    && echo -e "<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%> \n\n\nJSP test1 page\n\n\n<% out.println("1234567890");%>\n\n" > /usr/local/tomcat/webapps/lucien/index.jsp 
RUN sed -i '71a ' /usr/local/tomcat/conf/server.xml \
    && sed -i '72a '  /usr/local/tomcat/conf/server.xml \
    && sed -i '73a '  /usr/local/tomcat/conf/server.xml \
    && sed -i '74a '  /usr/local/tomcat/conf/server.xml 
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","start"]

文件结构:

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第2张图片

创建tomcat镜像:

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第3张图片

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第4张图片

二、dockerfile撰写 nginx 镜像

FROM centos:7.4.1708
ADD nginx-1.12.0.tar.gz /opt
RUN yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make \
    && useradd -M -s /sbin/nologin nginx \
    && cd /opt/nginx-1.12.0/ \
    && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-file-aio --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module \
    && make \
    && make install \
    && ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx \
    && echo -e "events {\nuse epoll;\nworker_connections  1024;\n}\nhttp {\nupstream tomcat_server {\nserver 172.168.184.100:8080 weight=1;\n}\nserver_tokens on;\nserver {\nlisten       80;\nserver_name  localhost;\nlocation ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)\$ {\nroot /usr/local/nginx/html/xxx;\nexpires 10d;\n}\nlocation / {\nroot   html;\nindex  index.html index.htmi index.php;\n}\nerror_page   500 502 503 504  /50x.html;\nlocation = /50x.html {\nroot   html;\n}\nlocation ~ .*.jsp\$ {\nproxy_pass http://tomcat_server;\nproxy_set_header HOST \$host;\nproxy_set_header X-Real-IP \$remote_addr;\nproxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;\n}\nlocation ~ \.php$ {\nroot           html;\nfastcgi_pass   172.168.184.30:9000;\nfastcgi_index  index.php;\nfastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;\ninclude        fastcgi_params;\n}\n}\n}" > /usr/local/nginx/conf/nginx.conf
ENV PATH /usr/local/nginx/sbin:$PATH
WORKDIR /usr/local/nginx/
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

文件结构:

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第5张图片

创建 nginx 镜像:

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第6张图片

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第7张图片

三、查看镜像构建情况

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第8张图片

四、分别开启nginx和tomcat

在这里插入图片描述

在这里插入图片描述

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第9张图片

五、测试

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第10张图片

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第11张图片

闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群_第12张图片

你可能感兴趣的:(dockerfile,docker,Linux,docker,linux)