对于使用已经配置的基于java的容器,如jenkins,sonarqube或nexus(例如,如果您运行自己的构建服务器),我发现使用docker run的参数将合适的-file安装到这些容器中会更方便。cacerts
我使用openjdk中的文件作为基础:cacerts
- 使用临时容器从 openjdk 映像中提取:
cacerts
docker pull openjdk:latest
docker run --rm --entrypoint cat openjdk:latest /etc/ssl/certs/java/cacerts > cacerts
- 使用从同一文件夹启动的临时容器将证书添加到提取的证书,该文件夹还包含:
cacerts
ldap.cer
docker run --rm -v `pwd`:/tmp/certs openjdk:latest bash -c 'cd /tmp/certs && keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias buenting-root -file ldap.cer'
- 运行目标 Docker 容器,使用 run 参数挂载提取的,例如:
cacerts
sonarqube
docker run ... -v /path/to/your/prepared/cacerts:/etc/ssl/certs/java/cacerts:ro ... sonarqube:lts
如果有新版本的 openjdk,您可以使用 1 中的命令更新主机上的 -file。和 2.cacerts
要更新目标映像(例如 ),您不需要使用 和 创建自己的映像。sonarqube
Dockerfile
docker build