如何将凭证添加到 Docker ADD 命令

问题描述 投票:0回答:2

我有这个:

ADD https://bitbucket.org/teros/vana/raw/"$commit"/mw/requirements.txt  'requirements.txt'

但是 HTTP 请求不起作用,因为我需要信用。我确实知道这个curl命令有效:

bitbucket_curl(){
   curl -H 'Authorization:Basic YW1bGx..plM2JyKg==' "https://api.bitbucket.org$@"
}

(令牌已修改,但命令是o/w正确的)

那么也许我可以将一个令牌作为 Bitbucket 的 url 参数包含在内?

docker dockerfile
2个回答
3
投票

应该像这样简单:

ARG bitbucket_pwd
ARG commit

ADD "https://[email protected]:[email protected]/teros/vana/raw/$commit/mw/requirements.txt"  '/temp/requirements.txt'

您可以使用

--build-arg

传递 ARG
docker build --build-arg bitbucket_pwd="$bitbucket_password"

0
投票

请勿将

--build-arg
ARG
/
ENV
COPY
一起使用来将机密传递给您的构建。在这两种情况下,秘密都可以在以后暴露。为了不暴露镜像中的秘密,您应该使用 Docker build Secrets
curl
的示例:

构建命令:

export CURL_CREDS="machine bitbucket.org login MY_USERNAME password MY_PASSWORD"
docker build --secret id=curl,env=CURL_CREDS .

Docker 命令:

RUN --mount=type=secret,id=curl \
    curl -o /temp/requirements.txt --netrc-file /run/secrets/curl https://bitbucket.org/teros/vana/raw/$commit/mw/requirements.txt
© www.soinside.com 2019 - 2024. All rights reserved.