こんにちは、素人エンジニアです。
この記事では、DockerでTomcatを立ち上げてアプリをデプロイする方法を紹介します。
Dockerfileで作成したイメージをdocker runすることで、アプリをTomcatにデプロイします。
DockerでTomcatへアプリをデプロイする方法
1. warファイルを準備
今回は、Tomcat9.0のサンプルアプリを使用していきます。
ご自身のwarファイルがある場合はそちらを使用してください。
Tomcat9.0のApplication Developer’s GuideのページにあるExample Applicationのリンク先からsampleのwarファイルがダウンロードできます。
hereをクリックすると、sample.warという名称のファイルがダウンロードされます。
このファイルをこれから作業するディレクトリに配置してください。
2. Dockerfileを作成する
sample.warを配置したディレクトリと同じ階層に、Dockerfileを作成します。
手段はなんでも良いので、「Dockerfile」という名称のファイルを作成してください。
Dockerfileには次の二行を記載します。
FROM tomcat:9.0.46
COPY sample.war $CATALINA_HOME/webapps/
FROMコマンド
FROM <image>[:<tag>]
FROMコマンドで、ベースとなるDocker imageを設定します。
今回は、Tomcatのver9.0.46を使用しています。
COPYコマンド
COPY <src>... <dest>
COPYコマンドで、ローカルからコンテナ上のディレクトリへファイルをコピーできます。
ここで使用している$CAYALINA_HOMEはTomcatの環境変数です。
Tomcatの環境変数はデフォルトで次のようになっています。
CATALINA_BASE: /usr/local/tomcat
CATALINA_HOME: /usr/local/tomcat
CATALINA_TMPDIR: /usr/local/tomcat/temp
JRE_HOME: /usr
CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
/usr/local/tomcat/webapps/にwarファイルをコピーすることで、Tomcatにwarファイルをデプロイをしています。
3. コンテナを起動してアプリを立ち上げる
Dockerfileを作成したら、まずはイメージを作成します。
docker build -t myapp .
buildコマンドを実行すると、Dockerfileからイメージを作成できます。
-tオプションで名前:タグを指定できます。”.”はDockerfileのあるパスを指定します。
docker imagesで、イメージが作成できているか確認しましょう。
% docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myapp 1.0 ce287e0f52cd 6 minutes ago 658MB
コンテナの作成&起動はdocker runで行います。
docker run --name myapp -p 8080:8080 -d myapp:1.0
–nameでコンテナ名、-pでポートを指定します。-dを指定するとバックグラウンドで実行されるようになります。
http://localhost:8080/sample/にアクセスして、sampleのページが表示されれば成功です。
4. Dockerに立ち上げたアプリを終了する
アプリを終了するときには、コンテナとイメージも削除してしまいましょう。
コンテナ停止
docker stop myapp
コンテナ削除
docker rm myapp
イメージ削除
docker rmi myapp:1.0
以上!
コメント