Комментарии 20
> docker-php-ext-install pcntl
> docker commit -m «added pcntl ext» 04370a9e1c73 my-login/repo:php7-fpm
Вопрос от новичка — разве так можно? Ведь теперь образ не соответствует тому, что написано в Dockerfile. Что будет, если я завтра решу пересоздать образ из Dockerfile?
Думаю автор здесь просто показал такую возможность, иначе бы он поправил это до публикации статьи в докер-файле:)
Вопрос от новичка — разве так можно? Ведь теперь образ не соответствует тому, что написано в Dockerfile. Что будет, если я завтра решу пересоздать образ из Dockerfile?
Вы вернетесь к первоначальному состоянию.
А представьте, что те изменения, которые вы накатили — были не нужны? Снова изменте Dockerfile? — если изменений не много это будет легко, а иначе — посложнее.
Собственно я к тому, что «слоистая архитектура» докера тем и хороша, что при изменениях контейнера достаточно эти изменения закомитить (при необходимости вернуться на одно из предыдущих состояний) и там где еще используется этот контейнер нужно будет просто сделать пулл — в таком случае не нужно полностью собирать контейнер заново. Т.е. некая реализация vcs, а Dockerfile для первоначальной настройки.
Но как я уже писал — и только погружаюсь эту тему)
docker tag 2d6263b52380 my-login/repo:nginx
docker tag 2d6263b52380 my-login/repo:fpm
Тут небольшая ошибка. для fpm другой id контейнера.
И в догонку вопрос. Зачем вы указываете NGINX_HOST и NGINX_PORT если в nginx.conf они у вас уже прописаны вручную?
Как я понимаю, их имеет смысл прописывать если у вас специальный template для nginx.conf. И нужно будет использовать другую команду что бы эти значения заменить. ( command: /bin/bash -c «envsubst < /etc/nginx/conf.d/mysite.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'»
)
Мелкий образ линукса для почти всего. образы убунт и прочих центосей — 300+ метров влегкую..
Выучить команду "обновить ось" и "поставить пакет такой-то"? По моему больше ничего не надо.
весь end user/server софт что под гентой, что под слакой, что под фрями давно ничем не отличается — бд, ни веб сервера и почтовые везде одинаковы.
Не придется, это просто очень легкая сборка линукса.
Как раз таки с alpine бывает много нюансов. В основном из-за того, что в нём сильно порезаны библиотеки и используется своя реализация стандартной библиотеки C - musl. Я, например, знаком с тем, что при установке python-пакетов они не компилировались в байт-код из-за отсутствия glibc, как на других дистрибутивах, из-за чего производительность сильно проседала (на эту тему на хабре есть статья; сейчас такое поведение вроде пофиксили, но всё равно будьте осторожны). Уверен, есть ещё множество нюансов. Но реальность такова, что для большинства проектов полный функционал не требуется, и alpine будет вполне достаточно.
Если берёте уже нужным образом упакованный образ, например, nginx:alpine, или php:X.X-fpm-alpine, я считаю, что им можно пользоваться в большинстве случаев, если не собираетесь устанавливать туда что-то специфическое. А вот для python-проектов, где критически важна производительность, лучше проверить, скомпилировались ли установленные пакеты. Пока это единственное, с чем я сталкивался
P.S. ну вот, только это написал, попробовал mongo-driver через pecl установить на php-fpm-alpine. Результат - ошибка автосборки в следствие отсутствия пакетов build-essential, в комплекте с которым идёт gcc... Думаю, это всё можно пофиксить, но тогда итоговый размер alpine будет не сильно меньше аналогичного deb-образа
Новичковый вопрос. Столкнулся с тем, что в связке nginx+php-fpm в докере на osx получаю непонятную задержку порядка полутора секунд при каждом запросе. Googling StackOverlow не помог. Собственно, вот сам вопрос на SO — http://stackoverflow.com/questions/40832825/how-to-figure-out-what-slows-down-docker
Буду признателен, если чем-то сможете помочь.
Очередная статья про Docker для новичка [nginx + php-fpm + postgresql + mongodb]