Как стать автором
Обновить

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

Время на прочтение1 мин
Количество просмотров31K

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

Теги:
Хабы:
Всего голосов 7: ↑2 и ↓5-3
Комментарии5

Публикации

Работа

DevOps инженер
32 вакансии

Ближайшие события