Я не могу найти много примеров того, как должен выглядеть файл .dockerignore.
Использование марионетки для установки нескольких пакетов на контейнере докера приводит к тому, что изображение взорвалось от 600 МБ до 3 ГБ. Я пытаюсь использовать файл .dockerignore
, чтобы сохранить размер в minumum
$ cat Dockerfile
FROM centos:centos6
#Work around selinux problem on cent images
RUN yum install -y --enablerepo=centosplus libselinux-devel
RUN yum install -y wget git tar openssh-server; yum -y clean all
Add Puppetfile /
RUN librarian-puppet install
RUN puppet apply --modulepath=/modules -e "class { 'buildslave': jenkins_slave => true,}"
RUN librarian-puppet clean
Если я запустил docker images --tree
, я вижу, что изображение мгновенно растет на несколько GB
$ docker images --tree
├─e289570b5555 Virtual Size: 387.7 MB
│ └─a7646acf90d0 Virtual Size: 442.5 MB
│ └─d7bc6e1fbe43 Virtual Size: 442.5 MB
│ └─772e6b204e3b Virtual Size: 627.5 MB
│ └─599a7b5226f4 Virtual Size: 627.5 MB
│ └─9fbffccda8bd Virtual Size: 2.943 GB
│ └─ee46af013f6b Virtual Size: 2.943 GB
│ └─3e4fe065fd07 Virtual Size: 2.943 GB
│ └─de9ec3eba39e Virtual Size: 2.943 GB
│ └─31cba2716a12 Virtual Size: 2.943 GB
│ └─52cbc742d3c4 Virtual Size: 2.943 GB
│ └─9a857380258c Virtual Size: 2.943 GB
│ └─c6d87a343807 Virtual Size: 2.964 GB
│ └─f664124e0080 Virtual Size: 2.964 GB
│ └─e6cc212038b9 Virtual Size: 2.964 GB Tags: foo/jenkins-centos6-buildslave:latest
Я полагаю, что причина, по которой изображение растет настолько велико, состоит в том, что librarian-puppet
клонирует кукольный модуль на /modules
, который разбивает кеш сборки
Я пробовал следующие .dockerignore
файлы без везения.
$ cat .dockerignore
/modules
/modules/
/modules/*
Является ли это правильным синтаксисом для файла .dockerignore
?
Существуют ли другие способы предотвращения роста этих контейнеров?
Дополнительная информация:
http://kartar.net/2013/12/building-puppet-apps-inside-docker/
http://danielmartins.ninja/posts/a-week-of-docker.html