2014-12-31 6 views
2

Мне нужно создать изображение с подробной информацией об установке tomcat. Я пробовал много файлов dockerfile в сети и пытался построить, но не повезло. Кто-нибудь скажет мне, какие команды должны быть в файле docker для успешной установки tomcat ?.I не нужно никакое официальное изображение tomcat. Спасибо заранее.Dockerfile для tomcat

+1

Посмотрите на [этих Dockerfiles] (https://github.com/tutumcloud/tutum-docker-tomcat) –

+0

Вы можете использовать их в качестве отправной точки, а также: https://github.com/docker-library/tomcat –

ответ

4

Существует несколько вариантов использования Tomcat в Docker. Например. Есть официальные версии, которые вы можете найти на 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 . 

Чтобы начать контейнер, вы должны 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> 

-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 
Смежные вопросы