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

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

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

1. 基于centos+jdk基础镜像

bash 复制代码
FROM centos7-jdk-1.0

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

  • tomcat
    • bin
    • app
      • apache-tomcat-8.5.100.tar.gz
    • conf
      • server.xml

3. 安装tomcat

3.1 解压安装包

bash 复制代码
tar -zxvf ${WORK_DIR}/tomcat/app/apache-tomcat-${CATALINA_VERSION}.tar.gz -C ${SRC_SERVER_DIR} && \

3.2 拷贝setenv.sh文件

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

3.3 拷贝tomcat配置文件

bash 复制代码
cp -r ${WORK_DIR}/tomcat/conf/* ${SRC_APP_DIR}/tomcat/conf/ && \

3.4 拷贝启动脚本

bash 复制代码
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命令

bash 复制代码
## 创建数据、日志目录
## 创建目录
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

xml 复制代码
<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启动参数

bash 复制代码
# 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"

4.3 start_tomcat.sh

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

bash 复制代码
#!/bin/bash
CATALINA_HOME="/export/servers/apache-tomcat-8.5.100"
$CATALINA_HOME/bin/startup.sh -config /export/App/tomcat/conf/server.xml &
相关推荐
long316几秒前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
rannn_11127 分钟前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
灵感菇_29 分钟前
Java HashMap全面解析
java·开发语言
qq_124987075331 分钟前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
短剑重铸之日37 分钟前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
若鱼19191 小时前
SpringBoot4.0新特性-Observability让生产环境更易于观测
java·spring
觉醒大王1 小时前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
努力学编程呀(๑•ี_เ•ี๑)1 小时前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
码农小卡拉1 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
向上的车轮2 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net