Multiple .dockerignore files in same directory

前端 未结 3 1231
礼貌的吻别
礼貌的吻别 2021-01-11 10:53

In the same directory I have two Dockerfiles and I would like to add a separate .dockerignore for each of them.

Currently, I have:

相关标签:
3条回答
  • 2021-01-11 10:57

    I don't think you can specify a different ignore file while doing a build. But since you are creating a separate file, you can write a shell script

    build_nginx.sh

    #!/bin/bash
    ln -fs .dockerignore.nginx .dockerignore
    docker build -f Dockerfile.nginx -t nginxbuild .
    

    build_npm.sh

    #!/bin/bash
    ln -fs .dockerignore.npm .dockerignore
    docker build -f Dockerfile.npm -t npmbuild .
    

    If you need to use it with docker-compose then you need to separate folders for ngixn and npm and then can have their individual .dockerignore file. In your docker-compose.yml file you need specify the name of the directory as the context

    0 讨论(0)
  • 2021-01-11 11:06

    Multiple dockerignore files or specifying which dockerignore file to use is currently not supported by Docker.

    See this issue on Github: Add support for specifying .dockerignore file with -i/--ignore

    0 讨论(0)
  • 2021-01-11 11:21

    You can now use multiple .dockerignore files in Docker.

    Firstly you need to enable BuildKit mode; this is done either by setting:

    export DOCKER_BUILDKIT=1

    or by adding this configuration:

    { "features": { "buildkit": true } }

    to the Docker daemon configuration in ~/.docker/daemon.json and restarting the daemon. This will be enabled by default in future.

    You also need to prefix the name of your .dockerignore file with the Dockerfile name.

    So if your Dockerfile is called OneApp.Dockerfile the ignore file needs to be called OneApp.dockerignore.

    All taken from this comment: https://github.com/moby/moby/issues/12886#issuecomment-480575928

    0 讨论(0)
提交回复
热议问题