我有一个krb5.conf文件。我创建了一个keytab并在此处进行了检查。
在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
但是,每当我尝试访问安全群集时,我都会获得未经授权的错误。当我用
检查键盘时klist -k evkuzmin.keytab
我找不到evkuzmin.keytab。
为什么?
我使用Oracle虚拟盒和Docker Quickstrat终端来测试当地的所有内容。keytab是在服务器上生成的,并在本地计算机上复制到项目中。
编辑
我使用
在图像中检查了文件docker run -it --entrypoint sh <image-name>
他们在场。
无需初始化它。我设法运行它。您可以在这里找到我的工作。
编辑
另外,我找到了这个片段
CMD kinit -kt $HOME/$USER.keytab $USER && ${PROJECT_DIR}/oozie/${PROJECT_NAME}/start.sh
应该从dockerfile初始化键盘。没有测试它,因此不知道它将如何与Spring一起使用。这将启动具有Kerberos凭据的Oozie协调员。