当前位置: 首页 > 知识库问答 >
问题:

在docker容器中使用带有ssl的selfhosted(Jetty)元数据库时出错

潘英豪
2023-03-14
MB_DB_FILE=/metabase/metabase.db
MB_JETTY_SSL=true
MB_JETTY_SSL_PORT=443
MB_JETTY_SSL_KEYSTORE=./keystore.jks
MB_JETTY_SSL_KEYSTORE_PASSWORD=my-pass

并试图逃跑:

docker run -p 80:3000 -v ~/metabase:/metabase --env-file "./prod.env" --name metabase metabase/metabase

但是我得到了以下错误:

ERROR metabase.core :: Metabase Initialization FAILED
java.net.SocketException: Permission denied
    at sun.nio.ch.Net.bind0(Native Method) ~[?:?]
    at sun.nio.ch.Net.bind(Unknown Source) ~[?:?]
    at sun.nio.ch.Net.bind(Unknown Source) ~[?:?]
    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) ~[?:?]
    at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source) ~[?:?]
    at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:345) ~[metabase.jar:?]
    at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310) ~[metabase.jar:?]
    at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80) ~[metabase.jar:?]

通过将SSL_PORT更改为8443来解决,因此新的env文件如下所示:

MB_DB_FILE=/metabase/metabase.db
MB_JETTY_SSL=true
MB_JETTY_SSL_PORT=8443
MB_JETTY_SSL_KEYSTORE=./keystore.jks
MB_JETTY_SSL_KEYSTORE_PASSWORD=my-pass
ERROR metabase.core :: Metabase Initialization FAILED
java.lang.IllegalStateException: /"./keystore.jks" is not a valid keystore
    null

编辑1:

跟进Joakim的建议:

更改为absute路径

MB_DB_FILE=/metabase-prod-data/metabase.db
MB_JETTY_SSL=true
MB_JETTY_SSL_PORT=8443
MB_JETTY_SSL_KEYSTORE=/root/services/metabase/setup/keystore.jks
MB_JETTY_SSL_KEYSTORE_PASSWORD=my-pass

得到此错误:

ERROR metabase.core :: Metabase Initialization FAILED
java.lang.IllegalStateException: /root/services/metabase/setup/keystore.jks is not a valid keystore

共有1个答案

云瑞
2023-03-14

443是大多数操作系统上的受限端口,需要root/superuser/admin权限才能绑定到它。

您的密钥存储区找不到,该路径无效。
错误只是令人困惑。

您在

MB_JETTY_SSL_KEYSTORE=./keystore.jks
 类似资料:
  • 我的docker撰写。yml是: Dockerfile是: application.properties TestDbConfig.java 当我构建我的应用程序映像时,一切正常,然后我应该启动我的数据库映像和应用程序映像。我用启动db,我得到了:。我的DbConfig有问题吗?如果我在本地启动我的应用程序,而不是在Docker容器中启动我的应用程序,我的应用程序成功连接到数据库,我可以做我想做的

  • 我试图创建一个WebSocket servlet上JBOSS与Jetty 8.1.8 这是我的代码:包com.microfocus.entrypoint.servlets; 这里有一个例外: 17:36:01,728 ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/benAsync].[Asynch

  • 然后 但是当我执行命令时,我出现了这个错误知道我的数据库已有表。我做错了吗?

  • 我正在使用我的Mac上的docker-compose(使用boot2docker)与官方的WordPress Docker图像一起工作。我需要做一次一次性的数据导入。我不知道该怎么做。如何将数据导入数据库容器?

  • 我正在尝试设置一个PostgreSQL容器(https://hub.docker.com/_/Postgres/)。我有一些来自当前PostgreSQL实例的数据。我从中复制了它,并希望将它设置为PostgreSQL容器的卷。 但我得到了同样的错误,我做错了什么? 我使用pg_dumpall获得了SQL,并将其放入/docker-entrypoint-initdb.d中,但每次执行时都会执行该文件