docker - Windows docker 容器中的 jfrog-cli - x509 : certificate signed by unknown authority

标签 docker artifactory x509certificate jfrog-cli

我试图将构建 Artifactory 从 Windows docker 容器上传到我们托管的 Artifactory 。 运行 docker build 时出现此错误 x509: certificate signed by unknown authority。 我正在使用安装了 docker 的 Windows Server 2016 VM。我在服务器上有公司代理。我从 https://jfrog.com/getcli/ 下载了 jfrog.exe(jfrog 版本 1.20.2)到 Windows 虚拟机。然后将可执行文件jfrog.exe复制到windows docker容器中。在 windows docker 容器中安装/复制 jfrog-cli 是正确的方法吗? 我不确定缺少哪些证书?

下面是示例 dockerfile:

FROM docker_registry/deploytools as deploy

ARG ARTIFACTORY_WEBSITE="https://.../artifactory"
ARG ARTIFACTORY_USER=""
ARG ARTIFACTORY_APIKEY=""
ARG ARTIFACTORY_ROOT_PATH=""

WORKDIR C:\\build

SHELL ["cmd", "/S", "/C"]

RUN echo "Deploying artifacts...." &&\
    C:\tools\7-Zip\7z.exe a artifacts.dv.zip C:\buid\artifacts &&\
    C:\tools\JFROG-CLI\jfrog rt config --url  %ARTIFACTORY_WEBSITE% --user %ARTIFACTORY_USER% --apikey %APIKEY% &&\
    C:\tools\JFROG-CLI\jfrog rt u "artifacts.dv.zip" %ARTIFACTORY_ROOT_PATH% --build-name=artifacts.dv --flat=false &&\
    C:\tools\JFROG-CLI\jfrog rt bp artifacts.dv &&\

CMD cmd

最佳答案

您提到的 x509 错误似乎表明用于连接到 Artifactory 的证书(由 ARTIFACTORY_WEBSITE 变量指定)不受信任。如果你有证书,你可以将它们添加到你的 docker 容器中并将它们放在 .jfrog/security 文件夹中

复制自 here

JFrog CLI supports accessing Artifactory over SSL using self-signed certificates as follows:

Under your user home directory, you should find a directory named .jfrog (this directory is created by the JFrog CLI first time it is used).
Under .jfrog, create a directory called security
Place your SSL certificate in your ~/.jfrog/security directory

要在镜像构建期间将它们添加到您的 docker 镜像中,您可以在 Dockerfile 中使用 ADD 命令

关于docker - Windows docker 容器中的 jfrog-cli - x509 : certificate signed by unknown authority,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53154796/

相关文章:

docker - Docker-compose up -d命令以某种方式覆盖生产标准输入和tty设置

python - 从另一个 Docker 容器在 Docker 容器内运行 shell 脚本?

docker - 通过REST API在Artifactory中设置baseURL

java - 浏览器集成ssl证书

java - Nanohttpd 在 Docker 容器中运行时立即退出

c++ - 对 C/C++ 开发人员的人工支持

jenkins - 如何检测jenkins管道项目(groovy脚本)中人工触发的触发原因?

c# - HTTPS 流量的代理服务器证书

tomcat - 使用tomcat进行SSL握手期间,ServerHelloDone之后没有“匹配别名”

docker - netcat 未在 docker 内返回