我有一个krb5.conf文件。我创建了一个密钥表,并将其检查为已分析的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但每次我尝试访问受保护的集群时,都会收到未经授权的错误。当我检查我的keytab时
klist -k evkuzmin.keytab我发现evkuzmin.keytab not found。
为什么?
我使用Oracle虚拟箱和docker quickstrat终端对所有东西进行本地测试。Keytab是在服务器上生成的,并复制到本地机器上的项目中。
编辑
我使用以下命令检查图像中的文件
docker run -it --entrypoint sh <image-name>他们是存在的。
发布于 2017-09-05 21:20:52
不需要对其进行初始化。我设法运行了它。你可以找到我是如何做到的,here。
编辑
另外,我发现了这个片段
CMD kinit -kt $HOME/$USER.keytab $USER && ${PROJECT_DIR}/oozie/${PROJECT_NAME}/start.sh它被认为是从dockerfile初始化密钥表。没有测试它,所以不知道它将如何与spring一起工作。这将启动一个具有kerberos凭证的oozie协调器。
https://stackoverflow.com/questions/45997255
复制相似问题