docker-composeを使用してapache+Tomcatの環境を構築しようとしているのですが、タイトルの通りTomcatのserver.xmlのaddress属性にホスト名を指定することができません。
enableLookups属性に問題があるのかと考え、trueにしたのですがダメでした。
- server.xml
server.xml
1 <Connector protocol="AJP/1.3" 2 address="apache" 3 port="8009" 4 enableLookups="true" 5 redirectPort="8443" 6 secretRequired="false" 7 />
- docker-compose.yml
docker
1 version: '3' 2 3 services: 4 apache: 5 image: httpd:latest 6 ports: 7 - '80:80' 8 volumes: 9 - ./httpd.conf:/usr/local/apache2/conf/httpd.conf 10 tomcat: 11 depends_on: 12 - apache 13 image: tomcat:latest 14 expose: 15 - '8009' 16 volumes: 17 - ./conf:/usr/local/tomcat/conf
- エラーメッセージ
tomcat_1 | 02-Jan-2021 00:59:59.863 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] tomcat_1 | 02-Jan-2021 00:59:59.948 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-172.18.0.3-8009"] tomcat_1 | 02-Jan-2021 00:59:59.954 SEVERE [main] org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to initialize component [Connector[AJP/1.3-8009]] tomcat_1 | org.apache.catalina.LifecycleException: Protocol handler initialization failed tomcat_1 | at org.apache.catalina.connector.Connector.initInternal(Connector.java:1042) tomcat_1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) tomcat_1 | at org.apache.catalina.core.StandardService.initInternal(StandardService.java:558) tomcat_1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) tomcat_1 | at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1057) tomcat_1 | at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) tomcat_1 | at org.apache.catalina.startup.Catalina.load(Catalina.java:724) tomcat_1 | at org.apache.catalina.startup.Catalina.load(Catalina.java:746) tomcat_1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) tomcat_1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) tomcat_1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) tomcat_1 | at java.base/java.lang.reflect.Method.invoke(Method.java:566) tomcat_1 | at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302) tomcat_1 | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472) tomcat_1 | Caused by: java.net.BindException: Cannot assign requested address tomcat_1 | at java.base/sun.nio.ch.Net.bind0(Native Method) tomcat_1 | at java.base/sun.nio.ch.Net.bind(Net.java:455) tomcat_1 | at java.base/sun.nio.ch.Net.bind(Net.java:447) tomcat_1 | at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227) tomcat_1 | at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:80) tomcat_1 | at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:228) tomcat_1 | at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:211) tomcat_1 | at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1159) tomcat_1 | at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1172) tomcat_1 | at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:592) tomcat_1 | at org.apache.catalina.connector.Connector.initInternal(Connector.java:1039) tomcat_1 | ... 13 more
address属性にapacheが起動しているコンテナのipアドレスを指定した場合は問題なく動きます。
(Tomcatの起動しているコンテナ内に入ってcurl apacheも叩けたので、docker内のDNSサーバも問題なく動いているようです)
もともとajpコネクタのaddress属性にホスト名を指定することはできないのでしょうか。それとも何か設定上の見落としがあるのでしょうか。
バージョン情報
Apache/2.4.46 (Unix)
tomcat9
docker-compose version 1.27.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/04 15:26