2017-09-01 42 views
2

我有一個krb5.conf文件。我創建了一個密鑰表並將其檢查爲已過期here如何初始化docker中的keytab?

在泊塢窗文件我添加了所有它的容器

FROM java:8 

ADD krb5.conf /etc/krb5.conf 
ADD evkuzmin.keytab /etc/evkuzmin.keytab 
ADD scripts/ /opt/scripts/ 

ADD report.jar report.jar 
RUN sh -c 'touch report.jar' 
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://audpro_mongo/report","-Djava.security.egd=file:/dev/./urandom","-jar","/report.jar","/opt/scripts/init-keytab.sh"] 

並試圖在init-keytab.sh

#!/bin/bash 
kinit [email protected] -k -t /etc/evkuzmin.keytab 

但每一次來初始化它,我試圖訪問受保護的集羣,我得到未經授權的錯誤。當我檢查我的密鑰表與

klist -k evkuzmin.keytab 

我得到evkuzmin.keytab未找到。

爲什麼?

我使用Oracle虛擬盒子和docker quickstrat終端來測試本地的一切。 Keytab在服務器上生成並複製到本地計算機上的項目中。

編輯

我使用

docker run -it --entrypoint sh <image-name> 

它們存在檢查映像中的文件。

回答

2

沒有必要初始化它。我設法運行它。你可以找到我是如何做到的here

編輯

另外,我發現這個片段

CMD kinit -kt $HOME/$USER.keytab $USER && ${PROJECT_DIR}/oozie/${PROJECT_NAME}/start.sh 

這應該初始化從dockerfile密鑰表。沒有測試它,所以不知道它如何與春天一起工作。這將啓動一個擁有kerberos證書的oozie協調員。

+0

幹得好。請自己接受你自己的答案。這將有助於更好地向在Google上搜索此問題的人員指出問題。 –