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

от автора

Пришел ко мне коллега и спросил: "Как проигнорировать .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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *