Docker镜像未与https和tomcat一起运行

问题描述 投票:2回答:1

[我正在尝试使用https URL而不只是http运行docker镜像。该应用程序已部署在tomcat中,并且已经生成了它的docker映像。当我在https URL上运行tomcat时,它可以正常工作,但是当我构建docker映像并尝试运行该映像时,该URL不起作用。

Dockerfile

FROM tomcat:9.0.35

COPY conf/my-release-key.keystore /usr/local/tomcat/conf/my-release-key.keystore
ADD webapps/placeholder-webapp.war /usr/local/tomcat/webapps/

EXPOSE 8080
CMD ["catalina.sh","run"] 

server.xml

<Connector port="8445" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           keystoreFile="conf/my-release-key.keystore" keystorePass="arcsight"
           clientAuth="false" sslEnabledProtocols="TLSv1.2,TLSv1.3" sslProtocol="TLS">
    </Connector>
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8445" />

正在运行的Docker映像的输出:enter image description here

我在运行docker映像时没有任何错误,但在访问时什至看不到任何东西

docker https dockerfile tomcat9
1个回答
0
投票

您需要使用EXPOSE 8445公开Dockerfile中的端口8445,并使用-p 8445:8445运行容器以将本地端口8445映射到容器内部运行的端口8445。

您的日志没有显示tomcat知道它需要准备一个连接器才能在端口8445上运行。它必须使用默认的server.xml配置。您需要使用类似以下内容的方式将server.xml提供给容器。

COPY server.xml /usr/local/tomcat/conf/

© www.soinside.com 2019 - 2024. All rights reserved.