Игнорирование файлов и каталогов с помощью .dockerignore - PullRequest
0 голосов
/ 02 мая 2018

У меня есть простой .dockerignore файл со следующим:

.git/
.idea/
venv/

Мой docker-compose.yml файл монтирует том:

version: "3"
services:
  frontend:
    build: .
    command: ["gunicorn", "--bind", "0.0.0.0:8000",  "project.app:create_app()"]
    env_file:
      - .env
    volumes:
      - .:/frontend
    ports:
      - "8000:8000"

Возможно, я не понимаю полный синтаксис или намерение файла .dockerignore, но после запуска docker-compose up --build, .git/, .idea/ и venv/ окажутся в моем контейнере.

Я прочитал и увидел это , но не представляется возможным, что невозможно смонтировать и предотвратить попадание файлов и каталогов в контейнер.

Как предотвратить доступ к этим каталогам в контейнере?

1 Ответ

0 голосов
/ 02 мая 2018

Файл .dockerignore изменит контекст, который отправляется демону Docker для создания образа. Таким образом, созданный образ не будет содержать эти файлы, если вы не создадите их заново.

Монтирование тома полностью отделено, и монтирование тома хоста, или bind mount, отобразит содержимое каталога хоста непосредственно в контейнер как есть. Это действие на уровне ОС Linux, которое не следует .dockerignore.

Вам необходимо исключить эти файлы из каталога, который вы монтируете в контейнер, или не монтировать том в контейнер и полагаться на образ, чтобы воспользоваться .dockerignore.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...