使用 sbt native 插件创建了 scala docker 镜像。我必须添加 LDAP CA 证书。如何在图像中添加它

Posted

技术标签:

【中文标题】使用 sbt native 插件创建了 scala docker 镜像。我必须添加 LDAP CA 证书。如何在图像中添加它【英文标题】:Created scala docker image using sbt native plugin. I have to add LDAP CA cert. How to add that in the image 【发布时间】:2020-10-02 21:28:07 【问题描述】:

Scala docker 插件创建案卷映像,但如何在映像中添加 LDAP CA 证书。是否有任何属性可以设置 LDAP 证书。我的应用程序在登录时需要 ldap 身份验证

【问题讨论】:

如果您有 CA 证书文件。 COPY /local/ca-certificates /docker/ca-certficate/location 我正在使用插件,当我使用 docker:publishlocal 时,它会创建新的 dockerfile。所以重点是如何通过插件添加此条目,以免被覆盖 【参考方案1】:

我做到了

dockerCommands+=Cmd("USER", "root")

dockerCommands += Cmd("RUN" ,"apk update && apk add openssl") dockerCommands += Cmd("RUN" ,"apk add --no-cache curl") dockerCommands += Cmd("RUN" ,"curl http://crl.xyz.com/xCertBundle.p7b | openssl pkcs7 - print_certs -outform PEM -out CertBundle.pem") dockerCommands+= Cmd("RUN" , "keytool -importcert -noprompt -alias 'xyzBundle' -file CertBundle.pem -storepass changeit -keystore /usr/lib/jvm/java-1.8- openjdk/jre/lib/security/cacerts")

【讨论】:

【参考方案2】:

您需要为您的证书文件添加一个映射:

https://sbt-native-packager.readthedocs.io/en/latest/formats/universal.html#universal-plugin-getting-started-with-packaging

【讨论】:

以上是关于使用 sbt native 插件创建了 scala docker 镜像。我必须添加 LDAP CA 证书。如何在图像中添加它的主要内容,如果未能解决你的问题,请参考以下文章

使用 sbt native packager 为 scala play app 创建 rpm

IntelliJ 14 - 创建/导入 Scala / SBT 项目

Sbt-Native-Packager 控制文件与 .deb 创建的名称不一致

sbt-native-packager scala 播放 dockerfile 未使用默认配置运行

Scala,docker - 如何使用 sbt-native-packager 在多模块应用程序中设置 mainClass?

任何使用 sbt-native-packager 的好例子