Tilde Expansion Doesn't Work in Docker COPY Co

2020-03-13 03:57发布

问题:

I have a Dockerfile with the following line:

COPY *.zip ~user1

The user user1 already exists and has a home directory (i.e. /home/user1). The goal, of course, is to copy the zip file into that user's home dir, however the result of the above is that the zip file is copied to a file named literally /~user1 in the image.

The following does work as expected:

COPY *.zip /home/user1

Is this a bug in Docker or is there a limitation related to tilde expansion that I'm not aware of?

Using Docker 1.13.0 on Mac.

回答1:

Tilde expansion for COPY is not supported.

From The COPY docs:

The dest is an absolute path, or a path relative to WORKDIR, into which the source will be copied inside the destination container.

Example:

COPY test relativeDir/   # adds "test" to `WORKDIR`/relativeDir/
COPY test /absoluteDir/  # adds "test" to /absoluteDir/