Mandeep Singh
Mandeep Singh

Reputation: 8224

Dockerfile: mkdir and COPY commands run fine but I can't see the directory and file

I am using jenkins image to create a docker container. For now I am just trying to create a new directory and copy a couple of files. The image build process runs fine but when I start the container I cannot see the files and the directory.

Here is my 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/

I found a similar question here but it seems different because I am not creating the jenkins user. It already exists with home directory /var/jenkins_home/. Not sure what I am doing wrong

Here is how I am building my image and starting the container:

➜  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

If I run the command without the volume mount, I can see the copied files and the directory. However with the volume mount I cannot see the same. Even if I empty the directory on the host machine. Is this the expected behaviour? How can I copy over files to the directory being used as a volume ?

Upvotes: 2

Views: 12715

Answers (1)

Jens Piegsa
Jens Piegsa

Reputation: 7485

  1. Existing volumes can be mounted with

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

  2. Furthermore, the documentation of COPY states:

    All new files and directories are created with a UID and GID of 0.

    So COPY does not reflect your USER directive. This seems to be the second part of your problem.

Upvotes: 1

Related Questions