はじめに
対象者
- eclipseを使ったJavaの開発はしたことはある
- あまりサーバーサイド知らない
- Docker使ったことない or なんとなく手順で使い方は見た。
やること
あまり手間をかけずにローカルにtomcatのサーバー環境を構築する。
tomcatをそのままローカルにインストールしてもいいのですが、
サーバーはLinux環境であることが多く、環境差異による問題も多いです。
全く同じとは言えませんが、なるべく本番に近い環境を構築したいと思います。
Dockerとは
この記事を参考にしてください。
https://qiita.com/hikaruright/items/0908df7d1101498e4a58
前提条件
Windows10 ProまたはMacを使っている
How To Setup
今回は、Dockerを使って環境を構築してみましょう。
Dockerのインストール
以下のサイトにアクセスし、Dockerをインストールします。
既にインストール済みの場合にはスキップしてください。
なお、Windowsをお使いの場合にはHyper-Vの有効化が必要ですのでご注意ください。
以下の公式ドキュメントを参考に有効化を行います。
Docker Composeによる起動
Dockerを使っていると、コンテナの管理が若干面倒です。
特に、一つのアプリケーションを作成するために複数のコンテナを起動する必要がある場合には
Docker Composeという機能を利用します。
簡単に説明すると、dockerのコンテナを起動させるための設定をひとまとめにした設定ファイルを作成します。
その設定ファイルがdocker-compose.ymlです。
今回はtomcatが起動する単一のコンテナを実行するための設定ファイルを作成します。
ファイルの作成
任意のフォルダを作成し、以下のファイルを作成します。
version: '3'
services:
app:
container_name: tomcat
image: tomcat:8.5-jdk8-adoptopenjdk-openj9
ports:
- 8080:8080
volumes:
- ./webapps:/usr/local/tomcat/webapps
これで、containerという名前のコンテナが起動されます。
それぞれの設定内容を解説していきましょう。
container_name
起動するコンテナ名です。
docker上で一意となるように指定します。
image
イメージ名を指定します。
ports
ポートフォワーディングを指定します。
この例では8080のアクセスをコンテナの8080ポートに転送しています。
例えば、ホストOSの8080が既に使用されている場合には、
- 8090:8080
とすることで、ホストOSの8090をコンテナの8080ポートに転送することができます。
volumes
ホストOSのフォルダまたはファイルをdockerコンテナのOSにマウントします。
この例の場合には、webappsフォルダをコンテナの/usr/local/tomcat/webappsにマウントしています。
Webappsフォルダの作成
作成したdocker-compose.ymlと同じフォルダに、「webapps」というフォルダを作成し、
作成したフォルダに配備したいwarファイルを置きます。
最終的に、以下のようなフォルダ構成になります。
/tomcat
┣ docker-compose.yml
┗ /webapps
┗ warファイル
実行
ターミナル、またはコマンドプロンプトを開き、
docker-compose.ymlのあるフォルダに移動します。
移動したら、以下のコマンドを実行します。
$ docker-compose up -d
これで、ローカルでtomcatが実行されました。
ログの確認
tomcatの起動ログをみたい場合には、以下のコマンドを実行します。
$ docker logs tomcat
以下のコマンドを実行することで、追従したログを表示できます。
$ docker logs -f tomcat
動作確認
ブラウザを開き
http://localhost:8080/xxx (xxxはwarのファイル)
にアクセスします。
特に問題なくデプロイされていればページが表示されます。