我正在使用Jenkins Image创建Docker容器。现在,我只是想创建一个新目录并复制几个文件。图像构建过程运行良好,但是当我启动容器时,我看不到文件和目录。
这是我的dockerfile
FROM jenkins:2.46.1
MAINTAINER MandeepSinghGulati
USER jenkins
RUN mkdir /var/jenkins_home/aws
COPY aws/config /var/jenkins_home/aws/
COPY aws/credentials /var/jenkins_home/aws/
我在这里找到了一个类似的问题,但似乎有所不同,因为我没有创建jenkins
用户。它已经存在于主目录/var/jenkins_home/
。不知道我做错了什么
这是我如何构建图像并启动容器的方式:
➜ jenkins_test docker build -t "test" .
Sending build context to Docker daemon 5.632 kB
Step 1/6 : FROM jenkins:2.46.1
---> 04c1dd56a3d8
Step 2/6 : MAINTAINER MandeepSinghGulati
---> Using cache
---> 7f76c0f7fc2d
Step 3/6 : USER jenkins
---> Running in 5dcbf4ef9f82
---> 6a64edc2d2cb
Removing intermediate container 5dcbf4ef9f82
Step 4/6 : RUN mkdir /var/jenkins_home/aws
---> Running in 1eb86a351beb
---> b42587697aec
Removing intermediate container 1eb86a351beb
Step 5/6 : COPY aws/config /var/jenkins_home/aws/
---> a9d9a28fd777
Removing intermediate container ca4a708edc6e
Step 6/6 : COPY aws/credentials /var/jenkins_home/aws/
---> 9f9ee5a603a1
Removing intermediate container 592ad0031f49
Successfully built 9f9ee5a603a1
➜ jenkins_test docker run -it -v $HOME/jenkins:/var/jenkins_home -p 8080:8080 --name=test-container test
如果我在没有音量安装的情况下运行命令,我可以看到复制的文件和目录。但是,对于音量安装,我看不到相同的。即使我在主机上空着目录。这是预期的行为吗?如何将文件复制到被用作卷的目录?
-
现有卷可以使用
安装docker container run -v MY-VOLUME:/var/jenkins_home ...
-
此外,
COPY
的文档说明:所有新文件和目录都是用UID和GID创建的。
因此
COPY
不能反映您的USER
指令。这似乎是您问题的第二部分。