gpt4 book ai didi

certificate - 从 docker 文件调用时出现 keytool 错误 : java. io.FileNotFoundException(权限被拒绝)

转载 作者:行者123 更新时间:2023-12-04 19:31:09 43 4
gpt4 key购买 nike

我正在尝试使用我的 docker 文件在 docker 镜像中安装证书

ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64

COPY app-module/src/main/resources/certificates/A.crt /etc/ssl/certs/
COPY app-module/src/main/resources/certificates/B.crt /etc/ssl/certs/

RUN $JAVA_HOME/bin/keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -file /etc/ssl/certs/A.crt -alias A
RUN $JAVA_HOME/bin/keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -file /etc/ssl/certs/B.crt -alias B

我收到错误
keytool error: java.io.FileNotFoundException: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/cacerts (Permission denied)

我发现的其他答案建议在 root/管理员模式下运行上述命令。但是,我在 Dockerfile 中运行这些命令。我如何克服这个错误?

最佳答案

docker 中的默认用户是 root。我相信出于安全目的,您的组织已将其设置为 root 以外的用户。您需要更改为 root 用户,然后更改回您的组织设置的任何用户。

ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64

COPY app-module/src/main/resources/certificates/A.crt /etc/ssl/certs/
COPY app-module/src/main/resources/certificates/B.crt /etc/ssl/certs/

#change to user root to install certificates
USER root
RUN $JAVA_HOME/bin/keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -file /etc/ssl/certs/A.crt -alias A
RUN $JAVA_HOME/bin/keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -noprompt -file /etc/ssl/certs/B.crt -alias B

#change to user oldUser to comply with organisation standards
USER oldUser

关于certificate - 从 docker 文件调用时出现 keytool 错误 : java. io.FileNotFoundException(权限被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43664368/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com