Сначала я создал fullchain.pem и privkey. pem с помощью certbot, а затем преобразован в keystore.jks с использованием этой сути.
Затем создал файл .env, который будет использоваться для --env- файл флаг докера:
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
Удалил старый контейнер и запустил новый с приведенным выше файлом env, но теперь я застрял на этой ошибке:
ERROR metabase.core :: Metabase Initialization FAILED
java.lang.IllegalStateException: /"./keystore.jks" is not a valid keystore
Я дважды проверил, действителен ли мой файл .jks, используя это. И это так.
Мои вопросы:
- Почему я не могу запустить его на 443
- Почему мое хранилище ключей недействительно?
Следуя рекомендациям Йоакима предложение:
Изменен на абсолютный путь
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
Подробнее здесь: https://stackoverflow.com/questions/663 ... -container