Dockerfile:mkdir和COPY命令运行良好,但我看不到目录和文件



我正在使用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

如果我在没有音量安装的情况下运行命令,我可以看到复制的文件和目录。但是,对于音量安装,我看不到相同的。即使我在主机上空着目录。这是预期的行为吗?如何将文件复制到被用作卷的目录?

  1. 现有卷可以使用

    安装

    docker container run -v MY-VOLUME:/var/jenkins_home ...

  2. 此外,COPY的文档说明:

    所有新文件和目录都是用UID和GID创建的。

    因此COPY不能反映您的USER指令。这似乎是您问题的第二部分。

相关内容

最新更新