dockerfile 定制 tomcat+nginx 集群

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

前言(来张图)

一、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<html>\n<head>\n<title>JSP test1 page</title>\n</head>\n<body>\n<% out.println("1234567890");%>\n</body>\n</html>" > /usr/local/tomcat/webapps/lucien/index.jsp
RUN sed -i '71a <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">' /usr/local/tomcat/conf/server.xml \&& sed -i '72a <Context docBase="/usr/local/tomcat/webapps/lucien" path="" reloadable="true">'  /usr/local/tomcat/conf/server.xml \&& sed -i '73a </Context>'  /usr/local/tomcat/conf/server.xml \&& sed -i '74a </Host>'  /usr/local/tomcat/conf/server.xml
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","start"]

文件结构:

创建tomcat镜像:

二、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;"]

文件结构:

创建 nginx 镜像:

三、查看镜像构建情况

四、分别开启nginx和tomcat

五、测试

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

  1. 闲着无聊,自己写了个几个string.h里的函数练手

    1. strtok   没有考虑执行效率问题,代码质量也比较差,不过基本算是完成了任务 static bool check( char c, const char *token );char *str ...

  2. docker nginx部署web应用_实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署...

    最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...

  3. 【redis】闲得无聊,来聊聊当下爆火的 redis集群,顺便搭一个玩玩呗

    愿打开此篇对你有所帮助. 文章目录 接上一篇:中心化与去中心化 redis集群介绍 redis集群的数据分片 Redis 集群的主从复制模型 Redis 一致性保证 redis集群搭建 前期准备 集群 ...

  4. 【闲得无聊】写个web版功德无量附代码+静态资源

    [闲得无聊]写个web版功德无量附代码+静态资源 Vue2环境开发 web版无量功德 <template> <div class="merits">< ...

  5. 闲得无聊?不如用Python设计一个经典小游戏

    前言 想不想在闲得无聊的时候,用自己学过的Python基础知识,来做一个非常简单的猜大小的游戏,里面囊括许多非常基础的知识点,函数设计,条件控制和循环等等,在做的过程中其实也是在不断的复习,提高你的基 ...

  6. 闲着无事,自己写的电脑wifi共享软件---WiFi Freedom

    闲着无聊的时候自己做的,基于 .net framework 2.0 如果运行错误,请安装.net framework 2.0,安装传送门 运行如下图所示: 点击下载

  7. docker安装redis提示没有日记写入权限_Docker 学习笔记(第六集:使用 Dockerfile 定制镜像)...

    ethan 读完需要 11分钟 速读仅需 4 分钟 / 使用 Dockerfile 定制镜像 / 什么是 Dockerfile 呢? Dockerfile 是一个文本文档,其中包含用户可以在命令行上调 ...

  8. Docker Dockerfile 定制镜像

    使用 Dockerfile 定制镜像 Dockerfile 指令详解 FROM 指定基础镜像 RUN 执行命令 构建镜像 镜像构建上下文(Context) 其它 docker build 的用法 直接 ...

  9. Docker用Dockerfile定制镜像

    用Dockerfile定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那之前提示的无法重复的问题 ...

最新文章

  1. 特别的需要名言警句提醒一下自己
  2. NUC1373 Bank Interest【水题】
  3. B站爱情怀,投资者只看利益
  4. UE4中UnLua基础
  5. Node.js Electron的扩展模块
  6. PHP递归遍历数组 不破坏数据结构 替换字符
  7. 基于JSP的图书管理系统
  8. mosse(Minimizing the Output Sum of Squared Error)论文解读
  9. 【SSM项目实战】航班订票系统SpringMVC+MyBatis+LayUI
  10. 手把手教你SPSS进行ROC曲线分析
  11. web安全day19:DNS欺骗、ARP攻击及钓鱼网站制作
  12. 云从科技在科创板IPO注册获批,收入远高于格灵深瞳同期
  13. 常用的企业邮箱有哪些?什么邮箱好用
  14. 微软服务器是永久授权的吗,微软再次针对Office永久授权版套件提价10% 将在10月1日起生效...
  15. 数据结构 ADT例子
  16. 64位 iee754_IEEE 754标准
  17. android调出系统设置
  18. 编译原理--词法分析器(python语言实现)
  19. Scrum 敏捷开发 基础考试
  20. Ajax之手机号码归属地查询

热门文章

  1. Python中的自定义进程和进程池
  2. 模拟实现unordered_mapunordered_set
  3. 【直播预告 | 今天10:30】多媒体技术 PI 第一期:OSS圆桌
  4. 通过改进视频质量评估提升编码效率
  5. srs代码学习(2)- 线程模型
  6. kubernetes1.8.4 安装指南 -- 10. 测试nginx服务
  7. go语言linux环境配置nginx,搭建wss
  8. Scala _11SparkWordCountscala语言java语言
  9. 爬虫 spider11——搭建分布式架构通过feign技术,开发服务消费者
  10. Redis02_数据模型初识