debian中的Tomcat7:wheezy Docker实例无法启动

 大牛 发布于 2023-01-08 19:25

我正在尝试使用谷歌的debian图像(google/debian:wheezy)首次构建一个docker镜像,在其上设置OpenJDK7并尝试设置Tomcat7.

docker pull google/debian:wheezy
docker run -i -t google/debian:wheezy bash

一旦我在bash,我安装openjdk

apt-get update
apt-get install openjdk-7-jre

过了一会儿,我收到一个错误,我必须跑

 apt-get update --fix-missing
 apt-get install openjdk-7-jre
 apt-get install tomcat7

安装Tomcat7后,我尝试启动它

/etc/init.d/tomcat7 start

这给了我以下错误:

[FAIL] Starting Tomcat servlet engine: tomcat7 failed!

我显然做错了什么,我在我的Debian Docker安装和我的OSX Docker安装上都得到了完全相同的行为(至少它是一致的,这有点令人印象深刻!)

查看/var/log/catalina.out不会显示任何错误,localhost也不会记录.

我使用普通的debian跟踪了相同的过程:wheezy图像并且没有任何错误地获得完全相同的故障.知道我搞砸了吗?

1 个回答
  • 我尝试了你的步骤,并能够运行tomcat就好了.我没有得到apt-get的问题,所以现在apt-get update --fix-missing是必需的.我甚至从init.d脚本启动了tomcat并且它工作正常.

    我的猜测是,你有一些网络问题,或者Debian的存储库存在一些问题,但是它们已得到修复.

    在任何情况下,您都应该注意,只要指定的命令正在运行,容器就会运行.这意味着,您应该在前台运行tomcat或以其他方式确保相同的事情.您可以查看此答案的某些选项.

    [编辑]

    我创建了一个Dockerfile来测试它.这里是:

    FROM google/debian:wheezy
    
    RUN apt-get update
    RUN apt-get install -y openjdk-7-jre tomcat7
    
    ADD run.sh /root/run.sh
    RUN chmod +x /root/run.sh
    
    EXPOSE 8080
    
    CMD ["/root/run.sh"]
    

    这是run.sh它使用的脚本:

    #!/bin/bash
    
    /etc/init.d/tomcat7 start
    
    # The container will run as long as the script is running, that's why
    # we need something long-lived here
    exec tail -f /var/log/tomcat7/catalina.out
    

    这是一个示例构建和运行会话:

    $ docker build -t tomcat7-test .
    $ docker run -d -p 8080:8080 tomcat7-test
    

    现在你应该能够看到tomcat的"它的工作原理!" 页面上http://localhost:8080/

    2023-01-08 19:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有