2014-12-31 36 views
2

我需要用tomcat安装details.I尝试建立许多dockerfile,并试图建立,但没有luck.Can任何人都可以告诉我,什么命令应该是他们在dockerfile中成功的tomcat安装?不需要任何官方的tomcat image.Thanks提前。tomcat的Dockerfile

+1

看一看[这些Dockerfiles(https://github.com/tutumcloud/tutum-docker-tomcat) –

+0

您可以使用这些作为出发点,以及: https://github.com/docker-library/tomcat –

回答

4

在Docker中使用Tomcat有几种可用选项。例如。还有,你可以找到关于https://registry.hub.docker.com/_/tomcat/

但是,如果你想从头开始创建一个文件下面可能有帮助的官方版本:

FROM ubuntu:14.04 
RUN apt-get update && apt-get -y upgrade 

RUN apt-get -y install software-properties-common 
RUN add-apt-repository ppa:webupd8team/java 
RUN apt-get -y update 

# Accept the license 
RUN echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 boolean true" | debconf-set-selections 

RUN apt-get -y install oracle-java7-installer 

# Here comes the tomcat installation 
RUN apt-get -y install tomcat7 
RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle" >> /etc/default/tomcat7 

# Expose the default tomcat port 
EXPOSE 8080 

# Start the tomcat (and leave it hanging) 
CMD service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out 

要构建图像只需使用docker build

docker build -t my/tomcat . 

要启动容器,您必须使用您的war文件mount a volume

docker run -v /somefolder/myapp:/var/lib/tomcat7/webapps/myapp -p 8080:8080 my/tomcat 

然后,你应该全部设置!

+0

它说开始tomcat失败 – user2451997

+0

它也失败了我。我想了解如何查看日志等信息,如果这可以得到运行。 – Jeff

+0

进行调试: 尝试将ssh放入容器中,而不启动tomcat: [docker run -v/somefolder/myapp:/ var/lib/tomcat7/webapps/myapp -p 8080:8080 -it my/tomcat bash] 在上面的命令,验证您的应用程序文件夹是否正确指定 -v/somefolder/myapp:/ var/lib/tomcat7/webapps/myapp 然后,尝试启动tomcat服务,看看发生了什么.... –

3

这是我做过什么来解决这个问题:

Dockerfile

FROM tomcat 

MAINTAINER richard 

RUN apt-get update && apt-get -y upgrade 

WORKDIR /usr/local/tomcat 

COPY tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml 
COPY context.xml /usr/local/tomcat/webapps/manager/META-INF/context.xml 

EXPOSE 8080 

我拷贝这两个文件,以从外部访问管理器应用。如果你希望它太,添加以下对上下文和tomcat用户文件

的context.xml

<Context antiResourceLocking="false" privileged="true" > 
    <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" 
     allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> 
    <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> 
</Context> 

的tomcat-users.xml中

<tomcat-users xmlns="http://tomcat.apache.org/xml" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" 
       version="1.0"> 
    <user username="admin" password="secret" roles="manager-gui"/> 
</tomcat-users> 

然后你就可以建立并运行它:

docker build -t name/tomcat . 
docker run -d -p 8080:8080 --name some_name name/tomcat 

部署应用程序如下:

docker cp some/app.war some_name:/usr/local/tomcat/webapps/app.war