AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 981752
Accepted
Jose Cabrera Zuniga
Jose Cabrera Zuniga
Asked: 2019-09-04 12:07:36 +0800 CST2019-09-04 12:07:36 +0800 CST 2019-09-04 12:07:36 +0800 CST

使用 Centos 7 在 docker 容器中安装 Tomcat 8.*

  • 772

我想创建一个 docker 容器来在其中安装 Tomcat。看来我的 docker 编译没有问题,并且我也能够运行 tomcat 而没有通过日志报告任何问题。但是,如果我尝试打开 tomcat,我会收到 404 错误。我不知道我错过了什么。请问有什么想法吗?接下来是我的 Dockerfile 的内容:

FROM centos:7
MAINTAINER joseccz

EXPOSE 8080
EXPOSE 8009


RUN yum install -y mc
RUN yum install -y wget
# RUN yum install -y apr-devel openssl-devel
RUN yum install -y gcc
RUN yum install epel-release -y
RUN yum install dnf -y
RUN yum install net-tools -y
RUN yum install libtool -y

ENV JAVA_HOME       /opt/javaSDK
ENV JRE_HOME        ${JAVA_HOME}/jre

ADD javaSDK ${JAVA_HOME}

ADD tomcat.service /etc/systemd/system/




# ----------------------------------------------- Copy Tomcat Files to /opt/tomcat -----------------------------------------------
ENV TOMCAT_MAJOR 8
ENV TOMCAT_VERSION 8.5.45
ENV CATALINA_HOME   /opt/tomcat

# http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.45/bin/apache-tomcat-8.5.45.tar.gz

ENV PATH        $JAVA_HOME/bin:$CATALINA_HOME/bin:$CATALINA_HOME/lib:$PATH

RUN wget http://www-us.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR}/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz && \
 tar -xvf apache-tomcat-${TOMCAT_VERSION}.tar.gz 

RUN mv apache-tomcat-${TOMCAT_VERSION} tomcat

RUN rm apache-tomcat*.tar.gz
RUN mv tomcat /opt/tomcat
# --------------------------------------------------------------------------------------------------------------------------------



RUN groupadd tomcat
RUN useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

# RUN wget https://rpmfind.net/linux/mageia/distrib/cauldron/x86_64/media/core/release/tomcat-native-1.2.23-1.mga8.x86_64.rpm
# RUN rpm -i tomcat-native-1.2.23-1.mga8.x86_64.rpm

# RUN cd /opt/tomcat
RUN chgrp -R tomcat /opt/tomcat/conf
RUN chmod g+rwx /opt/tomcat/conf
RUN chmod g+r /opt/tomcat/conf/*
RUN chown -R tomcat /opt/tomcat/logs/ /opt/tomcat/temp/ /opt/tomcat/webapps/ /opt/tomcat/work/

RUN chgrp -R tomcat /opt/tomcat/bin
RUN chgrp -R tomcat /opt/tomcat/lib
RUN chmod g+rwx /opt/tomcat/bin
RUN chmod g+r /opt/tomcat/bin/*

#----------------------------------Create /opt/software folder for addinitonal soft needed by Tomcat ------------------------------
RUN mkdir /opt/software

#---------------------------------------- copy and compile Development tools ---------------------------------------------------------

RUN yum groupinstall "Development Tools" -y

#---------------------------------------- Donwload and install open ssl ------------------------------------------------------------
RUN wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
RUN tar -xvf openssl-1.0.2l.tar.gz
RUN mv openssl-1.0.2l openssl
RUN mv openssl /opt/software/openssl
RUN cd /opt/software/openssl && ./config -fPIC --prefix=/opt/software/ --openssldir=/opt/software/ && make && make install

#---------------------------------------- Donwload and install open apr ------------------------------------------------------------
ENV APRVERSION 1.6.5
RUN wget http://apache.mirrors.ionfish.org//apr/apr-${APRVERSION}.tar.gz
RUN tar -xvf apr-${APRVERSION}.tar.gz
RUN mv apr-${APRVERSION} apr
RUN mv apr /opt/software/apr
RUN cd /opt/software/apr/ && \
    ./configure --prefix=/opt/software/ && \
     make && make install

#------------------------------------------ Copy TOMCAT native


# compiling tomcat native

RUN cd ${CATALINA_HOME}/bin/ && \
    tar -xvf tomcat-native.tar.gz && \
    cd tomcat-native-1.2.23-src/native/ && \
     ./configure --with-apr=/opt/software/ --with-java-home=/opt/javaSDK/  --with-ssl=/opt/software  --prefix=/opt/tomcat && \
    make && \
    make install

ADD setenv.sh /opt/tomcat/bin/

我的 setenv.sh 文件内容是:

export JAVA_HOME=/opt/javaSDK
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH
docker
  • 1 1 个回答
  • 2994 Views

1 个回答

  • Voted
  1. Best Answer
    Jose Cabrera Zuniga
    2020-08-13T17:41:17+08:002020-08-13T17:41:17+08:00

    重要的部分是以某种方式将下一个 xommands 添加到 dockerfile:

    #---------------------------------------- Donwload and install open apr ------------------------------------------------------------
    ENV APRVERSION 1.6.5
    RUN wget http://apache.mirrors.ionfish.org//apr/apr-${APRVERSION}.tar.gz
    RUN tar -xvf apr-${APRVERSION}.tar.gz
    RUN mv apr-${APRVERSION} apr
    RUN mv apr /opt/software/apr
    RUN cd /opt/software/apr/ && \
        ./configure --prefix=/opt/software/ && \
         make && make install
    
    #------------------------------------------ Copy TOMCAT native
    
    
    # compiling tomcat native
    
    RUN cd ${CATALINA_HOME}/bin/ && \
        tar -xvf tomcat-native.tar.gz && \
        cd tomcat-native-1.2.8-src/native/ && \
         ./configure --with-apr=/opt/software/ --with-java-home=/opt/javaSDK/ --with-ssl=/opt/software  --prefix=/opt/tomcat && \
        make && \
        make install
    
    ADD setenv.sh /opt/tomcat/bin/
    

    tomcat-native.tar.gz必须是tomca安装压缩文件中包含的要安装的Tomcat版本中包含的那个。此外,安装文件中包含的 Tomcat 应用程序示例必须至少手动添加到 Tomcat 的 webapps 文件夹中。我在自动执行此操作时遇到了问题。

    • 0

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve