Inside the dockerfile, I want to specify a copy operation for files which are defined by globbing and I want it to be copied with the path as well. So, something like this:
COPY ./src/**/project.json /app/**/
Considering I have the following structure:
./src/bar/project.json
./src/foo/project.json
The destination should look like this:
/app/bar/project.json
/app/foo/project.json
but apparently, this doesn't work and I really don't want to specify all of the COPY operations separately if I have a chance. Any idea how to do this?
Note that I cannot basically ignore other files through
.dockerignore
as suggested as I am going to copy the other files from the same folder after ruining a package install operation. So, the dockerfile is similar to this:FROM microsoft/aspnet:1.0.0-rc1-update1 COPY ./src/**/project.json /app/**/ WORKDIR /app/ModernShopping.Auth RUN ["dnu", "restore"] ADD ./src /app EXPOSE 44300 ENTRYPOINT ["dnx", "web"]
Workaround
Dockerfile
:.dockerignore
:For any non-standard build operation, I prefer wrapping the
docker build
command in a script (named 'build
').Here I would
tmp
(just beside theDockerfile
, in order to keep it in thedocker build
context)cp
with globing:cp ./src/**/project.json tmp
docker build
, with aDockerfile
includingCOPY tmp/ /app/
tmp
.That way, I pre-configure what I need from host, before building the image from the host context.