Что сохраяется в образ docker контейнера?
Когда мы на основе образа билдим и пушим на регистри свой собственный образ, что туда сохраняется ? например у нас есть образ php-fpm
- Сохраняются ли в образе установленные зависимости (композер, бибилотеки, например pdo и тд) ?
- Сохраняются ли файлы, появившиеся в результате выполнения команд из dockerfile, нарпимер composer install и тд ?
- Сохраняется ли код самого проекта внутри образа ? Например я видел проекты, которые устанавливаются из образов со своего регистри, где нет волумов до папки с самим проектом, а только до папки public. То есть весь код проекта как то зашит внутри образа? Как это делают и для чего ?
- Для чего вообще обычно используются свои образы и какой сценарий ? Билдится образ, отправляется в регистри, а потом, например поднимается этот образ на тестовом серваке, или на проде ? То есть запушенный образ билдить не надо, он уже готовый, надо только запустить ? И в него уже внутрь вшиты все файлы. которые нужны для работы проекта ?
Ответы (1 шт):
Автор решения: Sergei Kirjanov
→ Ссылка
В docker образ сохраняются файлы созданные (или измененные) при выполнении шагов из Dockerfile.
Докер не знает про композер и т. п., что композер в файлы положит, то и будет.
Можно делать сборку в несколько этапов (образов):
- сначала билд-образ, в котором есть исходники, компилятор и по шагам происходит компиляция.
- потом только результат компиляции (и нужные в рантайме либы) переносится в финальный образ.
Создание docker образа -- удобный способ развертывания своего приложения. Можно развернуть для теста, перейти к новой версии и вернуться к старой.
Развертывать можно, например на kubernetes.
В образе в основном всё есть, но часть конфигурации не включается, например:
- пароли и другие секреты
- настройки сети, разные для разных мест развертывания