如何在docker中初始化一个keytab?
我有一个krb5.conf文件。 我创build了一个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 quickstratterminal来testing本地的一切。 Keytab在服务器上生成并复制到本地计算机上。
编辑
我使用图片检查了图片中的文件
docker run -it --entrypoint sh <image-name>
他们在场。
没有必要初始化它。 我设法运行它。 你可以在这里find我是如何做到的。
编辑
另外,我find了这个片段
CMD kinit -kt $HOME/$USER.keytab $USER && ${PROJECT_DIR}/oozie/${PROJECT_NAME}/start.sh
这应该是从dockerfile初始化keytab。 没有testing,所以不知道它如何与春季工作。 这将启动与kerberos证书的oozie协调员。