Игнорирование .dockerignore

Kate

Administrator
Команда форума
Пришел ко мне коллега и спросил: "Как проигнорировать .dockerignore при сборке docker-образа?"


После совместных поисков и проверок, было найдено простое решение, состоящее в следующем:

Собрали тестовый проект:


тестовый проект

А теперь подробнее по файлам:


  1. Dockerfile
    FROM alpine
    COPY . .
    ENTRYPOINT cat data.txt

  2. .dockerignore
    data.txt
    README.md

  3. data.txt (файл который будем исключать при сборке)
    hello habr

  4. Dockerfile.dev
    FROM alpine
    COPY . .
    ENTRYPOINT cat data.txt

    Как видим он ничем не отличается от ранее созданного Dockerfile, но тут нас интересует постфикс в имени файла
  5. Dockerfile.dev.dockerignore (файл игнора для так называемой dev сборки)
    README.md

Теперь у нас есть 2 одинаковых Dockerfile, с разницей только в названии, и у каждого есть свой .dockerignore, ну и чтоб это работало надо установить флаг DOCKER_BUILDKIT=1.


Ну а теперь, можно проверить что получилось:


аля прод-сборка​


docker build -t with_ignore -f Dockerfile .

docker run --rm with_ignore

в выводе увидим


cat: can't open 'data.txt': No such file or directory

тест сборка​


docker build -t without_ignore -f Dockerfile.dev .

docker run --rm without_ignore

in output


hello habr

PROFIT.
github


Источник статьи: https://habr.com/ru/post/566498/
 
Сверху