Okey。やったよ。いくつかの問題がありましたが、これが最終的な変種の外観です。
私のドッカー。 krb5.confとkeytabは私のドッカーファイルと同じフォルダにあります。私がプロジェクトをビルドするとき、彼らはコンテナに追加され、私は使用するエントリーポイントで
-Djava.security.krb5.conf
にkrb5の位置を提供します。また、デバッグ+私はmongoに接続するためのいくつかのオプションがあります。
FROM java:8
ADD report.jar report.jar
ADD krb5.conf /etc/krb5.conf
ADD evkuzmin.keytab /etc/evkuzmin.keytab
RUN sh -c 'touch report.jar'
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://audpro_mongo/report","-Djavax.net.debug=all","-Dsun.security.spnego.debug=true","-Dsun.security.krb5.debug=true","-Djava.security.krb5.conf=/etc/krb5.conf","-jar","/report.jar"]
それから私は、あなたがそれを構築し、jarファイルと同じ方向にキータブを追加し、ドッキングウィンドウなしでアプリを実行したい場合は
public String getReportJSON() throws URISyntaxException {
KerberosRestTemplate restTemplate = new
KerberosRestTemplate("/etc/evkuzmin.keytab", "[email protected]");
URI uri = new URI("http" + "://" + host + ":" + port + "/webhdfs/v1" + path + "?op=OPEN");
String json = restTemplate.getForObject(uri, String.class);
return json;
}
をwebhdfsに接続するKerberosRestTemplate
を使用しています。次に、新しい場所を指すように/etc/evkuzmin.keytab
を変更します。