I decided to use the multiple source form of COPY to save an intermediate command but when I run it the following error pops up:
Step 17/22 : COPY --chown=$APP_USER:$APP_USER Gemfile Gemfile.lock $APP_PATH
When using COPY with more than one source file, the destination must be a directory and end with a /
In the Dockerfile I have this:
ARG APP_PATH='/usr/share/app/'
ONBUILD COPY --chown=$APP_USER:$APP_USER Gemfile Gemfile.lock $APP_PATH
Just to be clear, this happens with ONBUILD
present and without, it just so happened I pasted in the ONBUILD
example
I've tried with and without the single quotes. The arg has a trailing slash and is a directory so why is the build not honouring it?
I'd like to make this Dockerfile into a template using ONBUILD
so it'd be good if I can make sure the APP_PATH
arg is populated with a default that will work.
The answer, as of Docker version 18.09.0, build 4d60db4, is don't do it this way because it won't work.
I ended up hard-coding the destination directory (and the chown args too):
ONBUILD COPY --chown=app:app Gemfile Gemfile.lock /usr/share/app/