Tomcat docker
#Tomcat #Apache #httpd
Apache HTTP ServerとApache Tomcatを連携させる - しがないPGの自衛記録
DockerでApacheとTomcat環境構築。ついでにMaven&Java連携 - Qiita
Dockerで別コンテナでApache+Tomcat連携する | 株式会社CONFRAGE ITソリューション事業部
https://github.com/sikeda107/httpd-tomcat-correto11
code:bash
# httpdの設定ファイルテンプレを出力
mkdir -p ~/httpd-tomcat-correto11/httpd; cd $_
docker run -it --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > httpd.conf
echo 'ProxyPass / ajp://tomcatcorreto11:8009/' > httpd-proxy.conf
# Tomcatの設定ファイルテンプレを出力
mkdir -p ~/httpd-tomcat-correto11/tomcat; cd $_
docker run -it --rm tomcat:9-jdk11-corretto cat /usr/local/tomcat/conf/server.xml > server.xml
code:httpd/httpd.conf
以下のコメントアウトを外す
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
以下を追記する
Include conf/extra/httpd-proxy.conf
code:tomcat/server.xml
以下を
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
-->
↓に変更する
<Connector protocol="AJP/1.3"
address="0.0.0.0"
port="8009"
redirectPort="8443"
secretRequired="false" />
code:Dockerfile
FROM httpd:2.4
RUN apt update \
&& apt install curl
COPY httpd.conf /usr/local/apache2/conf/httpd.conf
COPY httpd-proxy.conf /usr/local/apache2/conf/extra/httpd-proxy.conf
EXPOSE 80
code:Dockerfile
FROM tomcat:9-jdk11-corretto
RUN yum update -y \
&& yum install -y less curl
COPY server.xml /usr/local/tomcat/conf/server.xml
RUN cd /usr/local/tomcat/webapps/ \
&& curl -LO https://tomcat.apache.org/tomcat-9.0-doc/appdev/sample/sample.war
EXPOSE 8009 8000
ENTRYPOINT "catalina.sh", "run"
code:docker-compose.yml
version: '3'
services:
httpd:
container_name: httpd24
build: ./httpd
ports:
- "80:80"
tomcat:
container_name: tomcatcorreto11
build: ./tomcat
entrypoint: "catalina.sh", "jpda", "run"
environment:
- JPDA_ADDRESS=0.0.0.0:8000
- JPDA_TRANSPORT=dt_socket
ports:
- "8000:8000"
volumes:
data: {}
code:bash
# 起動確認
docker-compose up --build
open http://localhost/sample
IntelliJ debug設定
Remote JVM Debug
Debugger mode : Attach to remote JVM
Host : localhost
Port: 8000
use module classpath : プロジェクトを選択