我正在使用jenkins图像来创建一个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/
我发现了一个类似的问题here,但它似乎有所不同,因为我没有创建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
如果我在没有卷装入的情况下运行命令,我可以看到复制的文件和目录。但是对于音量安装我看不到相同的情况。即使我清空主机上的目录。这是预期的行为吗?如何将文件复制到用作卷的目录?
答案 0 :(得分:1)
可以使用
挂载现有卷 docker container run -v MY-VOLUME:/var/jenkins_home ...
使用UID和GID为0创建所有新文件和目录。
因此COPY
不反映您的USER
指令。这似乎是问题的第二部分。