web-dev-qa-db-ja.com

Dockerは公式のTomcatイメージにwarfileを追加します

このコマンドを実行して、Tomcatの公式Dockerイメージを取得しました。

docker run -it --rm Tomcat:8.0

これをベースイメージとして使用することで、Tomcatwebappsフォルダーにwarファイルを含む新しいイメージを作成する必要があります。このようなDockerfileを作成しました。

From Tomcat8
ADD warfile /usr/local/Tomcat

イメージをビルドしてこのDockerfileを実行すると、Tomcatフロントページが表示されません。

誰もが公式のTomcatイメージwebappフォルダーに私のwarfileを追加する方法を教えてもらえますか。

22
user2451997

リポジトリのドキュメントを読んで、あなたはそのようなことをするでしょう

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は対話モードを許可するため、何かが展開されるかどうかを確認できます
66
daniel

@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を実行します。

20
Tom Saleeba

docker run -it --rm --name MYTOMCAT -p 8080:8080 -v .../wars:/ usr/local/Tomcat/webapps/Tomcat:8.0

warsフォルダーにはデプロイするwarが含まれます

2

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
2
daniel