相关疑难解决方法(0)

我们可以通过dockerfile构建docker镜像时通过cmd行传递ENV变量吗?

我正在开展一项任务,涉及使用Dockerfile构建一个以centOs为基础的docker镜像.dockerfile中的一个步骤需要设置http_proxyhttps_proxy ENV变量才能在代理后面工作.

由于这个Dockerfile将由具有不同代理的多个团队使用,我想避免为每个团队编辑Dockerfile.相反,我正在寻找一个允许我在构建时传递ENV变量的解决方案,例如,

sudo docker build -e http_proxy = somevalue.

我不确定是否已有提供此功能的选项.我错过了什么吗?

environment-variables docker boot2docker dockerfile

60
推荐指数
3
解决办法
4万
查看次数

Docker构建提供"无法准备上下文:上下文必须是目录:/ Users/tempUser/git/docker/Dockerfile"

我有一个Dockerfile应该建立一个Ubuntu图像.但是当我跑步的时候

docker build -t ubuntu-test:latest ./Dockerfile
Run Code Online (Sandbox Code Playgroud)

它在控制台上显示以下错误

无法准备上下文:context必须是一个目录:/ Users/tempUser/git/docker/Dockerfile

我在Mac OsX上.我也试过了sudo.什么都行不通.

docker dockerfile

59
推荐指数
5
解决办法
7万
查看次数

如何将 GitLab CI 文件变量传递给 Dockerfile 和 docker 容器?

GitLab CI 允许向项目添加自定义变量。

它允许使用类型的秘密变量,file其中我指定了一个作为变量名称的密钥和作为文件内容的值(例如证书的内容)

然后在管道执行期间,内容将保存为临时文件,调用变量名称将返回创建文件的路径。

最终,我需要将此文件复制到构建项目时创建的 Docker 容器中。(docker build ...在yml中)

当如果变量作品测试,我想echo $VARIABLE.gitlab-ci.yml和它的作品,临时文件的路径返回。但是在RUN echo $VARIABLEin 中执行时Dockerfile,它是空的。因此我也不能使用ADD $VARIABLE /tmp/这是我的目标。

有没有办法解决这个问题并使这个文件可供Dockerfile? 我是 Docker 和 GitLab 的新手,不知道还能去哪里找。

gitlab docker gitlab-ci dockerfile devops

13
推荐指数
2
解决办法
8610
查看次数

将主机环境变量传递给dockerfile

如何将主机环境变量(如用户名和主机名)传递给dockerfile?

例如,如果我的用户名是taha:

echo $USER
taha
Run Code Online (Sandbox Code Playgroud)

如何编写Docker文件以获得相同的输出?

FROM centos:centos7   
ARG myuser=$USER  
CMD echo $myuser
Run Code Online (Sandbox Code Playgroud)

environment-variables docker centos7 dockerfile

10
推荐指数
2
解决办法
1万
查看次数

Docker如何在构建期间将主机ENV注入Dockerfile ENV?

我在docker repo自动构建上添加了一些环境设置,可以说, WEBSERVER_PRIVATE_KEY=123

在我的Dockerfile中,当我在本地构建时,我认为它将获取env值

RUN echo $WEBSERVER_PRIVATE_KEY > /somewhere/key
Run Code Online (Sandbox Code Playgroud)

但这没有用。

我看了一下ENV命令,但似乎没有办法注入该值。

我看了一下ARG命令,但是它需要传递,--build-arg因为我怀疑它是否可以在基于docker repo的构建过程中工作。

在自动构建期间,请参阅以下docker repo上的环境设置,如何使Dockerfile引用WEBSERVER_PRIVATE_KEY设置中的。

在此处输入图片说明

docker

5
推荐指数
1
解决办法
3432
查看次数