Docker Tomcatにsample.warをデプロイする
これまでの記事で, DockerでApache Tomcatコンテナを構築する方法を2通りやってみた.
DockerでTomcatその1 - いろいろ書いていくつもり
DockerでTomcatその2 ( docker build ) - いろいろ書いていくつもり
といってもコンテナを起動しただけで味気ないので, 今回はサンプルアプリをデプロイしてみる.
環境
- Docker host on Oracle VirtualBox VM (Ubuntu 18.04) on macOS Mojave
- Docker 18.09.0
$ docker -v Docker version 18.09.0, build 4d60db4
アプリのデプロイ手順
Tomcat公式で公開されているサンプルアプリ(sample.war)を, TomcatコンテナのCATALINA_BASE/webappsに保存するだけ.
http://tomcat.apache.org/tomcat-8.5-doc/appdev/sample/
warファイルを保存すると, 自動的にアプリがデプロイされる.
CATALINA_BASEは環境によって異なるが, Docker公式イメージではCATALINA_BASE=/usr/local/tomcat/ となる(Docker Hubに書いてある).
https://hub.docker.com/_/tomcat/
warファイルの保存方法はいろいろ考えられるが, 今回はコンテナに入り込んで手動で行う.
ほかの方法は次以降の記事で書く, かも.
手順
1. tomcat container起動
以下のコマンドによりTomcatコンテナを起動.
$ docker container run --name tomcat-example -p 80:8080 tomcat:8.5.35 (略) XX-Dec-2018 XX:XX:XX.XXX INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1639 ms
イメージがローカルに保存されていない場合, イメージのダウンロードも同時に行われる.
2. コンテナ内でbashプロセスを起動し, ダウンロード
ターミナルをもうひとつ開いて, docker execコマンドでコンテナ内でbashを起動
$ docker exec -it tomcat-example /bin/bash root@d37eaefd6537:/usr/local/tomcat#
3. /usr/local/tomcat/webappsに移動し, warファイルをダウンロードする
root@d37eaefd6537:/usr/local/tomcat# cd webapps root@d37eaefd6537:/usr/local/tomcat/webapps# wget http://tomcat.apache.org/tomcat-8.5-doc/appdev/sample/sample.war Saving to: ‘sample.war’ sample.war 100%[===================>] 4.50K --.-KB/s in 0s 2018-12-XX (380 MB/s) - ‘sample.war’ saved [4606/4606]
4. ブラウザで動作確認
ブラウザでhttp://localhost/sampleにアクセス.
JSP pageやServletへのリンクをクリックして, 正常に動作することを確認.
5. おわり
不要なコンテナやイメージは削除.
$ docker container stop tomcat-example tomcat-example $ docker container rm tomcat-example tomcat-example $ docker image rm tomcat:8.5.35 Untagged: tomcat:8.5.35 (略)