2015年4月21日火曜日

dockerで動かしたtomcatをブラウザからアクセスして確認する

前回、apacheをdockerで動かしたので今度はtomcatを起動させます。

環境

  • mac
  • boot2docker(Docker version 1.5.0)

tomcatをdockerで起動させる最も簡単な方法は公式サイトのDockerfileを利用することです。
しかしながら、新規の案件ではなく既存の案件を扱うとなると、javaのバージョンとtomcatのバージョンは既存環境に合わせないといけません。

というわけでここでは、javaとtomcatのバージョンを指定したDockerfileを作成したいと思います。

boot2dockerを起動


boot2docker up

Dockerfileを記述


# Pull base image.
FROM centos:6.6
MAINTAINER Edy

# yum update
# http://blog.engineer.adways.net/archives/rails-on-docker
RUN rpm -Uhv http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN yum -y update
RUN yum install -y vim git sudo passwd wget make gcc tar readline-devel
RUN yum install -y openssl-devel openssh openssh-server openssh-clients
RUN yum install -y install libxml2 libxml2-devel libxslt libxslt-devel


# install java(1.6.0.35)
RUN yum install -y java-1.6.0-openjdk.x86_64
RUN yum install -y java-1.6.0-openjdk-devel.x86_64

# tomcat
ENV CATALINA_HOME /usr/local/tomcat
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME

# setting env variable
ENV JAVA_HOME /usr/lib/jvm/jre-1.6.0-openjdk.x86_64
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
ENV CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib
ENV TOMCAT_HOME /usr/local/tomcat
RUN export JAVA_HOME PATH CLASSPATH CATALINA_HOME TOMCAT_HOME

ENV TOMCAT_MAJOR 7
ENV TOMCAT_VERSION 7.0.29
ENV TOMCAT_TGZ_URL http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.29/bin/apache-tomcat-7.0.29.tar.gz

# 
RUN curl -SL "$TOMCAT_TGZ_URL" -o tomcat.tar.gz \
  && tar -xvf tomcat.tar.gz --strip-components=1 \
  && rm bin/*.bat \
  && rm tomcat.tar.gz*

EXPOSE 8080
CMD ["catalina.sh", "run"]

見ての通り、OFFICIAL REPOにあるtomcatのDockerfileを参照にし、利用したい環境に合わせて変更しました。
主な変更点は以下になります

  • TOMCAT_TGZ_URLをhttpsでなく、httpから取得するようにした。
  • yumでjavaをinstallした。そのため、JAVA_HOMEにreadlink $(readlink $(which java))のパスを設定した。
  • JAVA_HOME PATH CLASSPATH CATALINA_HOME TOMCAT_HOMEをexportで設定した。

Dockerfileファイルをビルド


docker build -t appsever001 .

ホストの 8081 ポートとコンテナの 8080 ポートを対応付けて起動


docker run -p 8081:8080 -d appsever001

// プロセスを確認
docker ps -a
5a43f3d8a898        websever001:latest   "/usr/sbin/httpd -D    12 minutes ago      Up 12 minutes       0.0.0.0:8080->80/tcp     pensive_curie
1d54773ccbe8        appsever001:latest   "catalina.sh run"      15 minutes ago      Up 15 minutes       0.0.0.0:8081->8080/tcp   condescending_mclean

dockerのIPを調査


boot2docker ip

192.168.xx.xxx

ブラウザからアクセス

ポート8081に関連づけているのでポート8081を指定する


http://192.168.xx.xxx:8081/

tomcat on docker

以上

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...