【发布时间】:2019-02-02 01:59:44
【问题描述】:
我有一个 Makefile:
docker build --build-arg USER=${USER} --build-arg PASSWD=${PASSWD}
我在 jenkins 脚本中构建它:
withCredentials([usernamePassword(credentialsId: 'my-credentials', passwordVariable: 'PASSWD', usernameVariable: 'USER')]) { (build_step) }
在 Dockerfile 脚本中,我有:
ARG USER
ARG PASSWD
curl -u ${USER}:${PASSWD}
其中 USER/PASSWD 对被传递到 repo/API。
正确传递 USER / PASSWD 的必要步骤是什么?我尝试了很多解决方案/语法选项和 RUN 导出。似乎没有任何工作。
有没有办法从 dockerfile 运行 echo 变量? Jenkins 日志在大多数尝试中显示变量名称或空格。
【问题讨论】:
-
解决方法:删除了 Makefile / withCredidentials 步骤。 curl 步骤中的凭据已替换为默认的公共 REST api 用户的凭据。
-
可能的解决方案/无效的问题陈述:我在 ARG 之后有一条 FROM 指令。如果在 FROM 之后替换了 ARG,则代码可能正在运行。基于:github.com/moby/moby/issues/34129“基本上,在 FROM 指令之后,所有构建参数都被重置,因此在 Dockerfile 中不可用。”
标签: shell docker jenkins arguments credentials