2016-07-19 2 views
-1

나는 docker를 배우기 시작했고 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를 사용하기 시작했다.

참고 : 배우기 때문에 공식적인 바람둥이 이미지를 다운로드하고 사용하기가 쉽지 않으므로 사용하기가 쉽지 않습니다. 비교를 위해 이미지를 다운로드했지만 문제를 해결할 수는 없었습니다. 이 문제를 해결하고 내 자신의 바람둥이 이미지를 멋지게 만들 수있는 몇 가지 제안이 있습니다.

+0

왜 이것이 다운 voted인지 확실하지 않습니까? 여기에 게시하기 전에 수행 한 연구는 표시되지 않습니까? –

답변

1

저는 오늘 같은 문제에 직면했습니다. 여기 내가 찾은 것입니다 : 당신은/usr/sbin에/바람둥이를 보면, 당신이 필요합니다 21

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

가로드 라인을/etc/SYSCONFIG/바람둥이 약 $ NAME = "바람둥이"를 필요로 볼 수 있습니다 . 또한 로그 파일 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/바람둥이"를 필요로한다. 그럼, 내가 한 것은 (당신의 Dockerfile에서 쉽게 할 수) 두 변수

NAME="tomcat" 
CATALINA_BASE="/usr/share/tomcat" 
/etc/tomcat/tomcat.conf에서

내가 수동으로

[[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]# 
바람둥이 시작할 수 있었다 thne을 정의하는 것이 었습니다

이것이 적절한 방법입니까? 나는 모르지만 작동한다.

호기심이 있다면이 답변의 길이가 긴 버전을 http://unixwars.blogspot.com/2016/07/starting-tomcat-manually-in-docker.html에 넣었습니다. 그러나이 회신에있는 내용이 충분하기를 바랍니다.

+0

시도해 보겠습니다. 나는 그것이 어떻게 진행되는지 알려줄 것이다. –