このコマンドを実行して、Tomcatの公式Dockerイメージを取得しました。
docker run -it --rm Tomcat:8.0
これをベースイメージとして使用することで、Tomcat
webapps
フォルダーにwarファイルを含む新しいイメージを作成する必要があります。このようなDockerfileを作成しました。
From Tomcat8
ADD warfile /usr/local/Tomcat
イメージをビルドしてこのDockerfileを実行すると、Tomcatフロントページが表示されません。
誰もが公式のTomcatイメージwebappフォルダーに私のwarfileを追加する方法を教えてもらえますか。
リポジトリのドキュメントを読んで、あなたはそのようなことをするでしょう
FROM Tomcat
MAINTAINER xyz
ADD your.war /usr/local/Tomcat/webapps/
CMD ["catalina.sh", "run"]
次に、docker build -t yourName <path-to-dockerfile>
を使用してイメージを構築します
そして、それを実行します:
docker run --rm -it -p 8080:8080 yourName
--rm
は、停止するとすぐにコンテナを削除します-p
はホストにポートを転送します(または、このIPにboot2dockerを使用する場合)-it
は対話モードを許可するため、何かが展開されるかどうかを確認できます@danielの答えに基づいて、TomcatのルートにWARをデプロイしたい場合、これを行いました。
FROM Tomcat:7-jre7
MAINTAINER xyz
RUN ["rm", "-fr", "/usr/local/Tomcat/webapps/ROOT"]
COPY ./target/your-webapp-1.0-SNAPSHOT.war /usr/local/Tomcat/webapps/ROOT.war
CMD ["catalina.sh", "run"]
既存のルートwebappを削除し、WARをROOT.warファイル名にコピーしてからTomcatを実行します。
docker run -it --rm --name MYTOMCAT -p 8080:8080 -v .../wars:/ usr/local/Tomcat/webapps/Tomcat:8.0
warsフォルダーにはデプロイするwarが含まれます
webapps
フォルダをどのように確認しますか?
webapps
フォルダーは、Dockerコンテナー内にあります。 webapps
コンテナーにアクセスする場合は、コンテナー内にHostディレクトリをマウントして、webapps
フォルダーとして使用できます。これにより、Dockerにアクセスせずにファイルにアクセスできます。詳細は こちら をご覧ください
ログにアクセスするには、コンテナを実行するときに行うことができます。
docker run -rm -it -p 8080:8080 **IMAGE_NAME** /path/to/Tomcat/bin/catalina.sh && tail -f /path/to/Tomcat/logs
または、Dockerコンテナを起動してから次のようなことを行います。
docker exec -it **CONTAINER_ID** tail -f /path/to/Tomcat/logs