docker COPY with file globbing

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:

  • Kubernetes NFS server is taking 100% cpu
  • Why doesn´t docker-compose env_file work but environment does?
  • How to Keep Docker Container Running After Starting Services?
  • How to share data between the docker container and the host?
  • Is Docker ARG allowed within CMD instrcution
  • Using Docker to load Memory Image?
  • ./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"]
    

  • why shipyard docker container does not start?
  • pip cannot install websocket-server python packge
  • How to wait till POST request is finished in GO?
  • connect robomongo to mongo instance running inside docker container
  • Running docker integration test containers while dev containers running
  • Logging from Docker
  • 2 Solutions collect form web for “docker COPY with file globbing”

    For any non-standard build operation, I prefer wrapping the docker build command in a script (named ‘build‘).
    Here I would

    • create a subfolder tmp (just beside the Dockerfile, in order to keep it in the docker build context)
    • make the shell cp with globing: cp ./src/**/project.json tmp
    • call docker build, with a Dockerfile including COPY tmp/ /app/
    • deleting tmp.

    That way, I pre-configure what I need from host, before building the image from the host context.

    Workaround

    Dockerfile:

    COPY src/ /app/
    

    .dockerignore:

    **
    !**/project.json
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.