我有一个krb5.conf文件。我创建了一个keytab并将其检查为expalined here。
在docker文件中,我将所有内容添加到容器中
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 EvKuzmin@REALM -k -t /etc/evkuzmin.keytab
但每次我尝试访问安全群集时,都会收到Unauthorized错误。当我用
检查我的密钥表时klist -k evkuzmin.keytab
我找不到evkuzmin.keytab。
为什么?
我使用Oracle虚拟盒和docker quickstrat终端测试一切localy。 Keytab是在服务器上生成的,并复制到本地计算机上的项目中。
修改
我使用
检查了图像中的文件docker run -it --entrypoint sh <image-name>
他们在场。
答案 0 :(得分:4)
无需初始化它。我设法运行它。你可以找到我是如何做到的here。
修改
另外,我找到了这个片段
CMD kinit -kt $HOME/$USER.keytab $USER && ${PROJECT_DIR}/oozie/${PROJECT_NAME}/start.sh
应该从dockerfile初始化keytab。没有测试它,所以不知道它如何与弹簧一起工作。这将启动一个带有kerberos凭证的oozie协调员。