我正在尝试将配置文件复制到主机安装目录下的jenkins / jenkins映像。我的Dockerfile的一部分:
FROM jenkins/jenkins
COPY file.txt /var/jenkins_home/
试图使用这样的音量:
-v volume_name:/var/jenkins_home
在这种情况下,我确实在jenkins中看到“ file.txt”,但是如果我使用:
-v /folder:/var/jenkins_home
我根本看不到jenkins中的file.txt。所以我想念这里吗?
根据您的问题:
...如果我使用:
-v /folder:/var/jenkins_home
我根本看不到jenkins中的file.txt。所以我想念这里吗?
主机卷(由于其基础实现而有时称为绑定安装)不会根据映像内容初始化该卷。只有命名卷才提供泊坞窗引擎的初始化支持。但是,可以使用不同的语法对绑定安装执行命名卷。以下是几种不同方法的示例:
# create the volume in advance
$ docker volume create --driver local \
--opt type=none \
--opt device=/home/user/test \
--opt o=bind \
test_vol
# create on the fly with --mount
$ docker run -it --rm \
--mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/home/user/test \
foo
# inside a docker-compose file
...
volumes:
bind-test:
driver: local
driver_opts:
type: none
o: bind
device: /home/user/test
...
就您而言,您可以执行以下操作:
docker run -it --rm \
--mount type=volume,dst=/var/jenkins_home,volume-driver=local,volume-opt=type=none,volume-opt=o=bind,volume-opt=device=/folder \
...
要回答您实际要执行的操作:
就是说,Jenkins映像在/ var / jenkins_home定义了一个卷,这阻止了您使用更改该文件夹的RUN命令扩展映像的能力。COPY和ADD之所以起作用,是因为它们没有创建临时容器。作为解决方法,Jenkins开发人员使用/usr/share/jenkins/ref/
映像内部作为初始化/ var / jenkins_home目录的源。因此,您的Dockerfile应该改为在其中复制所需的文件:
FROM jenkins/jenkins
COPY file.txt /usr/share/jenkins/ref/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句