keytool error: java.io.FileNotFoundException (Permission denied) while calling from docker file
keytool error: java.io.FileNotFoundException (Permission denied) while calling from docker file
我正在尝试使用我的 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/administrator 模式下执行上述命令。但是,我在 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
我正在尝试使用我的 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/administrator 模式下执行上述命令。但是,我在 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