Alex
Alex

Reputation: 44385

Unable to replace files in docker image with ADD or COPY

I am trying to replace some files in a folder in a docker image. I am using the following command inside Dockerfile:

COPY /home/adietz/Work/20_BSP/Jenkins/venvs/linux_selenium/lib/python2.7/site-packages/browsermobproxy /usr/local/lib/python2.7/dist-packages/browsermobproxy

which results in an error

Step 4/12 : COPY /home/adietz/Work/20_BSP/Jenkins/venvs/linux_selenium/lib/python2.7/site-packages/browsermobproxy /usr/local/lib/python2.7/dist-packages/browsermobproxy
lstat home/adietz/Work/20_BSP/Jenkins/venvs/linux_selenium/lib/python2.7/site-packages/browsermobproxy: no such file or directory

Replacing COPY with ADD results in the same error. Also the following command

COPY /home/adietz/Work/20_BSP/Jenkins/venvs/linux_selenium/lib/python2.7/site-packages/browsermobproxy /usr/local/lib/python2.7/dist-packages/

and gives identical(!) error.

Both paths are folders. The folder in the docker image already exists; I just want to replace the files.

What am I doing wrong here...?

Upvotes: 3

Views: 14467

Answers (2)

johnkhigginson
johnkhigginson

Reputation: 156

I had this same issue and realized that COPY or ADD won't work with node_modules that are referenced instead of directly installed into the project. When I switched this it worked for me.

Upvotes: 0

Alex
Alex

Reputation: 44385

It seems you cannot use absolute paths in the COPY command AND you can only copy files which are inside the folder you are running the docker command.

So to copy these files you have to do e.g. the following steps

cp -r /home/adietz/Work/20_BSP/Jenkins/venvs/linux_selenium/lib/python2.7/site-packages/browsermobproxy .

and then add to the Dockerfile:

COPY browsermobproxy/ /usr/local/lib/python2.7/dist-packages/

A symbolic link also does not work...

Upvotes: 2

Related Questions