Исключение файлов в Docker
Исключение файлов не пускает
лишнее в папку, из которой
собирают образ.
Список имён лежит в
.dockerignore рядом
с рецептом.
Служба не отправляет эти
файлы в контекст сборки,
и они не попадают в образ
через COPY.
В примере в исключения
записан secret.txt.
В папке также лежат
index.html со словом
hello и secret.txt
со словом hidden.
Файл исключений такой:
secret.txt
Рецепт копирует всё оставшееся
в каталог /app,
задаёт его рабочим
и при старте выводит список
имён файлов.
Файл шагов для образа
clean такой:
FROM alpine
COPY . /app
WORKDIR /app
CMD ["ls"]
После сборки с меткой
-t clean . запуск
покажет в выводе
index.html и не покажет
secret.txt.
Скрытое слово осталось
только на диске компьютера,
не внутри шаблона.
Выполним сборку и старт:
docker build -t clean .
Строка вывода содержит только разрешённые имена. Проверка подтверждает, что исключение сработало ещё до копирования. Откроем список так:
docker run --rm clean
Исключите файл skip.txt из сборки образа open, а keep.txt положите внутрь.
При запуске убедитесь, что виден только keep.txt.