2016-07-19 8 views
-1

私はドッカーの勉強を始め、手動でtomcatコンテナの設定を手に入れています。アイデアは、イメージを手動で作成し、ステップをドッカーファイルに変換することです。これまでに実行されたステップをリストします。Tomcatの手動設定 - Docker

 Using aws EC2 Centos micro instance for learning docker 
    Docker daemon is up and running 
    Docker usergroup has also been setup and I run docker as normal user 
    Installed oracle JDK as below: 
       wget --no-cookies --no-check-certificate --header "Cookie:\ 
       gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; \ 
       oraclelicense=accept-securebackup-cookie" \ 
       http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm' 
    Installed tomcat using yum (Have tried manual method using the gz file also but did not help): 
       yum install tomcat.noarch tomcat-admin-webapps.noarch tomcat-webapps.noarch 
    Edited "/etc/tomcat/tomcat.conf" to add /usr/java/latest as JAVA_HOME 
    Committed the changes to container: 
       docker commit 42b0beb497f9 $USER/tomcat_install 
     docker run -d -p 8080:8080 $USER/tomcat_install /usr/sbin/tomcat start -D FOREGROUND 
       Output: SHA Checksum 

しかし、コンテナの終了は、以下のエラーを与える:関連する検索時に

 `enter code here /usr/sbin/tomcat: line 21: .: /etc/sysconfig/: is a directory` 

私は、このエラーが原因でオープンJDKの使用の代わりに、オラクルのJDK来ることが分かりました。上記のように、私はoracle jdkを使用し始めました。

ご注意:私は学んでいるので、公式のTwitterの画像をダウンロードして使いすぎないようにしたいと思います。比較のために私はそのイメージをダウンロードしましたが、それでも問題を解決することはできませんでした。これを解決し、私自身の風袋のイメージを持っているいくつかの提案は素晴らしいです

+0

なぜこれがダウンリストされたのか分かりませんか?ここに掲載する前に研究を行ったことはありませんか? –

答えて

1

私は今日非常に同じ問題に直面していました。ここで私が見つけたものです:あなたが、/ usr/sbinに/ tomcatのを見れば、あなたはそれが必要とされる21

# Get instance specific config file 
if [ -r "/etc/sysconfig/${NAME}" ]; then 
    . /etc/sysconfig/${NAME} 
fi 

をロードするための行を/ etc /のsysconfig/tomcatに約$ NAME = "Tomcatを" 必要があることが表示されます。また、ログファイルのcatalina.outを書き込む場所だから、知ることができるライン39

if [ "$1" = "start" ]; then 
     ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \ 
     -classpath "$CLASSPATH" \ 
     -Dcatalina.base="$CATALINA_BASE" \ 
     -Dcatalina.home="$CATALINA_HOME" \ 
     -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ 
     -Djava.io.tmpdir="$CATALINA_TMPDIR" \ 
     -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \ 
     -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \ 
     org.apache.catalina.startup.Bootstrap start \ 
     >> ${CATALINA_BASE}/logs/catalina.out 2>&1 & 
     if [ ! -z "$CATALINA_PID" ]; then 
      echo $! > $CATALINA_PID 
     fi 

で始まる文で$ CATALINA_BASE =「は、/ usr/share/Tomcatを」必要があります。だから、私がやったことは二つの変数(あなたDockerfileで行うのは簡単)/etc/tomcat/tomcat.confとthneで

NAME="tomcat" 
CATALINA_BASE="/usr/share/tomcat" 

を定義することでした私は、手動でのTomcat

[[email protected] tomcat]# ps -ef|grep tomcat 
root  352  1 8 13:09 ?  00:00:01 /usr/lib/jvm/jre/bin/java -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start 
root  372  1 0 13:09 ?  00:00:00 grep --color=auto tomcat 
[[email protected] tomcat]# 
を開始することができました

これは適切な方法ですか?私は知らないが、それは動作する。

好奇心が強い場合は、この回答の方が長く続きます。http://unixwars.blogspot.com/2016/07/starting-tomcat-manually-in-docker.htmlです。しかし、私はこの返答で何が十分であることを願っています。

+0

私はそれを試してみましょう。私はそれがどのように進むのかを知らせます。 –