在Docker容器中运行Maven时如何修复javax.net.ssl.SSLException?

时间:2020-06-22 14:41:07

标签: java docker maven ssl openshift

我有以下问题。为了构建我的应用程序war文件,我在本地运行以下命令:

mvn -s settings.xml -Dmaven.test.skip=true package -Popenshift

这在我的本地计算机上正常工作。

但是我正在使用s2i构建Docker映像。在生成器映像的汇编脚本中执行完全相同的mvn命令会导致以下错误消息:

javax.net.ssl|DEBUG|01|main|2020-06-22 14:30:18.012 UTC|SSLSocketInputRecord.java:470|Raw read (
  0000: 3C 48 54 4D 4C                                     <HTML
)
javax.net.ssl|ERROR|01|main|2020-06-22 14:30:18.017 UTC|TransportContext.java:318|Fatal (UNEXPECTED_MESSAGE): Unsupported or unrecognized SSL message (
"throwable" : {
  javax.net.ssl.SSLException: Unsupported or unrecognized SSL message
    at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:433)
    at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175)
    at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)
    at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1148)
    at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1057)

我不明白为什么容器化版本不起作用。完全相同的Docker映像可以成功运行并在Windows机器上构建应用程序,但对我而言却失败了。我怀疑s2i上的某些交互与我的OSX docker上未发生的证书有关。我应该去哪里看看?

从源代码构建映像的s2i命令如下:

s2i build --environment-file environment.env ~/Programming/pfs-converter   pgen-dev/pgenbuilder:latest  /pgenapp:latest

0 个答案:

没有答案