当前位置: 首页 > 知识库问答 >
问题:

如何在docker构建期间指定和使用证书文件

丰岳
2023-03-14

我的公司刚刚更新了我们的安全性,现在我们需要添加自定义证书文件的使用。我的本地docker构建现在无法在构建期间下载包。要解决此问题,我需要在docker构建中使用证书文件。

如果我尝试在本文末尾使用 Dockerfile 构建映像,我会收到以下错误,指示权限被拒绝,因为它需要证书 -

=> ERROR [4/4] RUN apk update && apk upgrade                                                                                                            0.3s
------                                                                                                                                                        
 > [4/4] RUN apk update && apk upgrade:                                                                                                                       
#8 0.194 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz                                                                        
#8 0.232 140008555400008:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1913:
#8 0.233 ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.14/main: Permission denied
#8 0.233 WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/main: No such file or directory
#8 0.233 fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
#8 0.273 140008555400008:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1913:
#8 0.273 ERROR: https://dl-cdn.alpinelinux.org/alpine/v3.14/community: Permission denied
#8 0.273 WARNING: Ignoring https://dl-cdn.alpinelinux.org/alpine/v3.14/community: No such file or directory
#8 0.273 2 errors; 14 distinct packages available

如果我注释掉< code>RUN apk update

我也尝试过使用ENV和ARG,但运气不佳。

如果我像这样更新Dockerfile中的apk命令RUNSSL_CERT_FILE=~/biw-trusted-certs.pemapk更新

我确实需要它在Alpine linux中工作。

我的泊坞文件 -

FROM alpine:3.14.1

COPY trusted-certs.pem ~/trusted-certs.pem

#ARG SSL_CERT_FILE=~/trusted-certs.pem
#ENV SSL_CERT_FILE=~/trusted-certs.pem
RUN export SSL_CERT_FILE=~/trusted-certs.pem

RUN apk update && apk upgrade

共有1个答案

颛孙信厚
2023-03-14

我终于想通了。

所有工作与此 -

FROM alpine:3.14.1

COPY trusted-certs.pem /root/trusted-certs.pem
RUN SSL_CERT_FILE=~/trusted-certs.pem apk add ca-certificates
RUN update-ca-certificates
RUN apk update && apk upgrade
RUN apk add curl
RUN curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip

更干净:

FROM alpine

COPY ./trusted-certs.pem /usr/local/share/ca-certificates/
RUN cat /usr/local/share/ca-certificates/trusted-certs.pem >> /etc/ssl/certs/ca-certificates.crt

RUN apk update && apk add --no-cache jq
RUN apk add curl
RUN curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip
 类似资料:
  • 如果我在Mac中有一个实际的文件(.p12)和一个Bash shell,我如何提取证书和密钥文件以及证书过期日期?假设我有csr(.p12),关键文件。 提前感谢!

  • 问题内容: 我使用了官方的elasticsearch docker镜像,想知道在构建自定义索引时如何也可以包括在内,以便在启动容器时该索引已经存在。 我的尝试是将以下行添加到我的dockerfile中: 我收到以下错误: 我可以在构建过程中通过这样的API调用到达elasticsearch还是有完全不同的方法来实现这一点? 问题答案: 我有类似的问题。 我想创建一个预加载数据的docker容器(通

  • 我正在使用下面的命令生成一个私钥和公钥。 openssl genrsa-out private.pem 2048 openssl rsa-in private.PEM-outform PEM-pubout-out public.PEM 但是我无法在这里添加过期日期,如何在这里将过期数据添加到公钥中。

  • 问题内容: 我对Docker的层缓存表现出色感到惊讶,但我也想知道它如何确定是否可以使用缓存的层。 让我们以这些构建步骤为例: 例如,它如何知道可以使用缓存的层,但可以为其创建新层呢? 问题答案: 在Dockerfile最佳实践构建缓存部分中相当详尽地解释了构建缓存过程。 * 从缓存中已存在的基本映像开始,将下一条指令与从该基本映像派生的所有子映像进行比较,以查看是否其中一个是使用完全相同的指令构

  • 我有一个简单的Dockerfile来将python需求构建到一个zip文件中,然后上传到AWS Lambda。 有没有复制python的方法。在dockerfile期间将图像压缩到主机?

  • 问题内容: 像这样构建docker映像时,它将在构建过程中为RUN指令设置联网模式(默认为“默认”) 所以我试图用DOKCER-COMPOSE构建Docker镜像: 因此,按照上述组成文件,我正在尝试构建映像,但如何在构建时在docker-compose中指定–network =“ host”模式 问题答案: @dkanejs是正确的,这是您的用法(版本号很重要):