搭建基础镜像(centos+jdk+tomcat)

devtools/2025/1/17 21:35:04/

搭建基础镜像(centos+jdk+tomcat

  • 1. 基于centos+jdk基础镜像
  • 2. 拷贝源文件到工作目录
  • 3. 安装tomcat
    • 3.1 解压安装包
    • 3.2 拷贝setenv.sh文件
    • 3.3 拷贝tomcat配置文件
    • 3.4 拷贝启动脚本
    • 3.5 设置entrypoint命令
  • 4. 配置文件示例
    • 4.1 server.xml
    • 4.2 setenv.sh
    • 4.3 start_tomcat.sh

centosjdk_1">1. 基于centos+jdk基础镜像

FROM centos7-jdk-1.0

2. 拷贝源文件到工作目录

tomcat_14">3. 安装tomcat

3.1 解压安装包

tar -zxvf ${WORK_DIR}/tomcat/app/apache-tomcat-${CATALINA_VERSION}.tar.gz -C ${SRC_SERVER_DIR} && \

3.2 拷贝setenv.sh文件

# 拷贝文件到tomcat安装目录 \
chmod +x ${WORK_DIR}/tomcat/bin/setenv.sh && \
cp ${WORK_DIR}/tomcat/bin/setenv.sh ${SRC_SERVER_DIR}/apache-tomcat-${CATALINA_VERSION}/bin && \

tomcat_25">3.3 拷贝tomcat配置文件

cp -r ${WORK_DIR}/tomcat/conf/* ${SRC_APP_DIR}/tomcat/conf/ && \

3.4 拷贝启动脚本

cp ${WORK_DIR}/tomcat/bin/start_tomcat.sh ${SRC_APP_DIR}/tomcat/bin/ && \
chmod +x ${SRC_APP_DIR}/tomcat/bin/start_tomcat.sh && \

3.5 设置entrypoint命令

## 创建数据、日志目录
## 创建目录
ENV MKDIR_TOMCAT="mkdir -p $SRC_LOG_DIR/tomcat"
## 将SRC拷贝到TARGET目录
ENV COPY_EXPORT="cp -r -t $TGT_DIR $SRC_DIR/*"
## CHMOD
ENV CHOWN_ADMIN="chown -R $SYS_USER_GROUP:$SYS_USER $TGT_DIR $SRC_DIR"
## 启动脚本
ENV START_TOMCAT="su $SYS_USER -c \"$TGT_APP_DIR/tomcat/bin/start_tomcat.sh\""## 进入容器时默认执行的命令
ENTRYPOINT /usr/sbin/sshd && \/usr/sbin/crond && \echo $MKDIR_TOMCAT && $MKDIR_TOMCAT && \echo $COPY_EXPORT && $COPY_EXPORT && \echo $CHOWN_ADMIN && $CHOWN_ADMIN && \echo $START_TOMCAT && $START_TOMCAT && \sleep 9999999d

4. 配置文件示例

4.1 server.xml

一个tomcat内启动多个应用app1和app2

<Service name="app1"><Connector port="8001" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9001" URIEncoding="UTF-8"maxParameterCount="1000" maxSpareThreads="750" maxThreads="1000" minSpareTHreads="" acceptCount="1000"useBodyEncodingForURI="true"/><Engine name="Catalina" defaultHost="localhost"><Realm className="org.apache.catalina.realm.LockOutRealm"><Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/></Realm><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Context docBase="/export/App/app1" path="/" reloadable="false"/><Valve className="org.apache.catalina.valves.AccessLogValve" directory="/export/Logs/app1"prefix="access_log" suffix=".log"pattern="%h %l %u %t &quot;%r&quot; %s %b"/></Host></Engine></Service><Service name="app2"><Connector port="8002" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9002" URIEncoding="UTF-8"maxParameterCount="1000" maxSpareThreads="750" maxThreads="1000" minSpareTHreads="" acceptCount="1000"useBodyEncodingForURI="true"/><Engine name="Catalina" defaultHost="localhost"><Realm className="org.apache.catalina.realm.LockOutRealm"><Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/></Realm><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Context docBase="/export/App/app2" path="/" reloadable="false"/><Valve className="org.apache.catalina.valves.AccessLogValve" directory="/export/Logs/app2"prefix="access_log" suffix=".log"pattern="%h %l %u %t &quot;%r&quot; %s %b"/></Host></Engine></Service>

4.2 setenv.sh

设置环境变量和Java启动参数

# TOMCAT
export CATALINA_HOME="/export/servers/apache-tomcat-8.5.100"
export CATALINA_BASE="/export/servers/apache-tomcat-8.5.100"
export CATALINA_OUT="/export/Logs/tomcat/catalina.out"
export CATALINA_PID="$CATALINA_BASE/logs/tomcat.pid"# JAVA
export JAVA_HOME="/export/servers/jdk1.8.0_391"
export JAVA_OPTS="-server -Xms5120m -Xmx5120m"

tomcatsh_110">4.3 start_tomcat.sh

tomcat启动脚本,手动指定配置文件位置

#!/bin/bash
CATALINA_HOME="/export/servers/apache-tomcat-8.5.100"
$CATALINA_HOME/bin/startup.sh -config /export/App/tomcat/conf/server.xml &

http://www.ppmy.cn/devtools/26432.html

相关文章

STL——stackqueue

stack stack即为栈&#xff0c;先进后出是其特点 栈只有栈顶元素能被外界使用&#xff0c;故不存在遍历行为 栈中常用接口 构造函数 stack<T> stk; //默认构造方式 stack(const stack &stk); //拷贝构造 赋值操作 stack& operator(const stack &stk); …

23 重构:烟囱式、平台化、中台化的架构

上一讲里&#xff0c;我们介绍了两大类型的系统升级重构方案&#xff0c;还介绍了如何进行重构版本的上线&#xff0c;以及如何平滑地完成新老版本切换的方案。在本讲里&#xff0c;将会具体介绍如何判断系统发展到什么阶段需要重构&#xff0c;以及如何实施重构。 系统稳定性…

K8S controller编写之Informer的原理+使用[drift]

概念 核心思想&#xff08;重点&#xff09;watch-list 机制 Watch 通过 HTTP 协议与 Kubernetes API Server 建立长连接&#xff0c;接收 Kubernetes API Server 发来的资源变更事件。Watch 操作的实现机制使用 HTTP 协议的分块传输编码——当 client-go 调用 Kubernetes API…

2024年Q1季度电子书线上市场数据分析:高端市场潜力巨大,销额同比超170%!

数字阅读设备的普及和互联网技术的不断进步&#xff0c;越来越多的读者选择使用电子书来获取知识和娱乐。在今年Q1季度中&#xff0c;电子书线上市场规模正在持续扩大。 根据鲸参谋数据显示&#xff0c;在线上电商平台&#xff08;某东&#xff09;电子书Q1销量累计约23.3万件…

【ZYNQ】Zynq 开发流程

Zynq 芯片架构由嵌入式处理器&#xff08;Processing System, PS&#xff09;与可编程逻辑&#xff08;Programmable Logic, PL&#xff09;&#xff0c;以及 PS 与 PL 之间的互联总线组成。本文主要介绍 Xilinx Zynq 芯片开发所使用的软件&#xff0c;包括 Vivado IDE 与 Xili…

接口测试 - postman

文章目录 一、接口1.接口的类型2. 接口测试3. 接口测试流程4. 接口测试用例1. 测试用例单接口测试用例-登录案例 二、HTTP协议1. HTTP请求2. HTTP响应 三、postman1. 界面导航说明导入 导出用例集 Get请求和Post请求的区别:2.postman环境变量和全局变量3. postman 请求前置脚本…

数据挖掘之基于Lightgbm等多模型消融实验的信用欺诈检测实现

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在当前的金融环境中&#xff0c;信用欺诈行为日益增多&#xff0c;给金融机构和消费者带来了巨大的损…

自动化测试用例之元素自愈:Playwright与pytest的结合使用

前言 在自动化测试领域&#xff0c;元素定位的准确性对于测试的成功至关重要。当使用Playwright结合pytest进行测试时&#xff0c;我们可以通过一些策略来增强测试的鲁棒性&#xff0c;特别是在元素定位失败时能够自动进行修复。本文将详细介绍如何实现这一过程。 环境准备 …