闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群
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 集群相关推荐
- 闲着无聊,自己写了个几个string.h里的函数练手
1. strtok 没有考虑执行效率问题,代码质量也比较差,不过基本算是完成了任务 static bool check( char c, const char *token );char *str ...
- docker nginx部署web应用_实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署...
最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...
- 【redis】闲得无聊,来聊聊当下爆火的 redis集群,顺便搭一个玩玩呗
愿打开此篇对你有所帮助. 文章目录 接上一篇:中心化与去中心化 redis集群介绍 redis集群的数据分片 Redis 集群的主从复制模型 Redis 一致性保证 redis集群搭建 前期准备 集群 ...
- 【闲得无聊】写个web版功德无量附代码+静态资源
[闲得无聊]写个web版功德无量附代码+静态资源 Vue2环境开发 web版无量功德 <template> <div class="merits">< ...
- 闲得无聊?不如用Python设计一个经典小游戏
前言 想不想在闲得无聊的时候,用自己学过的Python基础知识,来做一个非常简单的猜大小的游戏,里面囊括许多非常基础的知识点,函数设计,条件控制和循环等等,在做的过程中其实也是在不断的复习,提高你的基 ...
- 闲着无事,自己写的电脑wifi共享软件---WiFi Freedom
闲着无聊的时候自己做的,基于 .net framework 2.0 如果运行错误,请安装.net framework 2.0,安装传送门 运行如下图所示: 点击下载
- docker安装redis提示没有日记写入权限_Docker 学习笔记(第六集:使用 Dockerfile 定制镜像)...
ethan 读完需要 11分钟 速读仅需 4 分钟 / 使用 Dockerfile 定制镜像 / 什么是 Dockerfile 呢? Dockerfile 是一个文本文档,其中包含用户可以在命令行上调 ...
- Docker Dockerfile 定制镜像
使用 Dockerfile 定制镜像 Dockerfile 指令详解 FROM 指定基础镜像 RUN 执行命令 构建镜像 镜像构建上下文(Context) 其它 docker build 的用法 直接 ...
- Docker用Dockerfile定制镜像
用Dockerfile定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那之前提示的无法重复的问题 ...
最新文章
- 特别的需要名言警句提醒一下自己
- NUC1373 Bank Interest【水题】
- B站爱情怀,投资者只看利益
- UE4中UnLua基础
- Node.js Electron的扩展模块
- PHP递归遍历数组 不破坏数据结构 替换字符
- 基于JSP的图书管理系统
- mosse(Minimizing the Output Sum of Squared Error)论文解读
- 【SSM项目实战】航班订票系统SpringMVC+MyBatis+LayUI
- 手把手教你SPSS进行ROC曲线分析
- web安全day19:DNS欺骗、ARP攻击及钓鱼网站制作
- 云从科技在科创板IPO注册获批,收入远高于格灵深瞳同期
- 常用的企业邮箱有哪些?什么邮箱好用
- 微软服务器是永久授权的吗,微软再次针对Office永久授权版套件提价10% 将在10月1日起生效...
- 数据结构 ADT例子
- 64位 iee754_IEEE 754标准
- android调出系统设置
- 编译原理--词法分析器(python语言实现)
- Scrum 敏捷开发 基础考试
- Ajax之手机号码归属地查询
热门文章
- Python中的自定义进程和进程池
- 模拟实现unordered_mapunordered_set
- 【直播预告 | 今天10:30】多媒体技术 PI 第一期:OSS圆桌
- 通过改进视频质量评估提升编码效率
- srs代码学习(2)- 线程模型
- kubernetes1.8.4 安装指南 -- 10. 测试nginx服务
- go语言linux环境配置nginx,搭建wss
- Scala _11SparkWordCountscala语言java语言
- 爬虫 spider11——搭建分布式架构通过feign技术,开发服务消费者
- Redis02_数据模型初识