Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在dockerfile中隐藏用户并传入curl命令_Docker_Curl_Dockerfile_Password Protection - Fatal编程技术网

如何在dockerfile中隐藏用户并传入curl命令

如何在dockerfile中隐藏用户并传入curl命令,docker,curl,dockerfile,password-protection,Docker,Curl,Dockerfile,Password Protection,我有一个dockerfile,在最后一个步骤中,我从artifactory下载了一个WAR文件,这样我就可以在webapps/目录中的容器中使用它 问题是我不想显示curl-u命令的用户和过程。如何在以下命令中同时隐藏用户和密码?docker中是否有隐藏/加密密码的方法 RUN curl -u user:pass -O "https://artifactory.xxxx.com:443/artifactory/api/api-0.0.1-SNAPSHOT.war" 无法从docker hist

我有一个dockerfile,在最后一个步骤中,我从artifactory下载了一个WAR文件,这样我就可以在webapps/目录中的容器中使用它

问题是我不想显示curl-u命令的用户和过程。如何在以下命令中同时隐藏用户和密码?docker中是否有隐藏/加密密码的方法

RUN curl -u user:pass -O "https://artifactory.xxxx.com:443/artifactory/api/api-0.0.1-SNAPSHOT.war"

无法从
docker history
中隐藏运行命令的内容


您应该在Dockerfile之外下载工件。执行
curl
命令,然后运行
docker build
的脚本可能会简化您的工作。除了不通过
docker history
公开凭据之外,这还避免了将它们提交到源代码管理,使得即使无法访问您的工件,也可以构建映像,并简化了面向开发人员的序列,在该序列中,他们需要用自己构建的内容构建临时映像。

您可以使用多阶段构建来实现轻量级映像,但您必须使用一个docker构建,而不是两个。就像这个Dockerfile:

FROM maven as build
(... Your app build....)
FROM tomcat
COPY --from=build artifact.war /dest/dir

来自的第二个
之前的所有内容都将从生成的图像中丢弃,因此它将包含Tomcat,而不是Maven,以及您复制的工件。

这就是我想要做的,到目前为止还可以:Jenkins管道。第1阶段代码签出,第2阶段构建工件。第3阶段上载到工件。4 docker构建映像并将其推送到azure regitry。在步骤4中,使用curl命令构建docker映像以下载它并将其保留在deploy文件夹中。我想这样做的方式是使用一个只有tomcat和java的瘦图像(我使用的是正式的tomcat dockerfile)。光亮的图像。这里没有maven。这就是为什么我在jenkins管道已经有maven的第2步中在jenkins上用maven构建工件。你还有什么别的建议吗?