Николай
Нужно дописать CMD в докерфайл?
Николай
Вроде как да https://habrahabr.ru/company/southbridge/blog/329138/ Спасибо
a1eXei
вероятно да, нужно по окончанию запуска контейнера, чтобы процесс висел в памяти, иначе контейнер так и будет завершаться
a1eXei
я тут решил для тестов попробовать 1с сервер поднять в контейнере + postgres и в идеале эти контейнеры будут управляться kubernetes'ом
Anonymous
Нет каких-нибудь особенностей запуска php-fpm в Docker контейнере? Устанавливаю php-fpm в базовый образ ubuntu и запускаю CMD service php7.0-fpm start . После этого контейнер умирает, т.к. процесс php-fpm не запускается.
Anonymous
Поиски в интернете привели к чему-то вроде CMD ["php-fpm7.1"]
Anonymous
Или же использовать supervisord CMD ["/usr/bin/supervisord"]
Anonymous
Запустить php7.0-fpm в виде сервиса невозможно?
Mike
RUN service php7.1-fpm start ENTRYPOINT /usr/sbin/php-fpm7.1 —nodaemonize
Mike
Другого выхода я не нашел
Anonymous
А перезапуск php-fpm в контейнере будет работать?
Anonymous
Т.е. service php7.0-fpm restart ?
Mike
При смерти процесса контейнер будет умирать
Mike
тобишь тебе нужно перезапускать сам контейнер
Anonymous
Ясно. Так и придётся php-fpm на хосте запускать.
Georgiy
Ясно. Так и придётся php-fpm на хосте запускать.
а в чем проблема ? docker заменяет собой вызов service
Georgiy
но ничто тебе не мешает обернуть запуск докера в сервис. делается легко. если тебе нужно запускать именно через service (не знаю, может утилиты управления у тебя под это заточены)
Anonymous
В любом случае - решение с ENTRYPOINT не помогло
a1eXei
вроде есть образ php-fpm в реестре, попробуй или на гитхабе или скачай образ из реестра и поковыряй его
Anton
всем привет. кто-нибудь разворачивал vuejs в контейнере?
Николаич
У нас фронт вполне себе из контейнера Nginx-ом отдается
Aleksandr
В любом случае - решение с ENTRYPOINT не помогло
не умеешь готовить, начни с готового
Anonymous
Возьму официальный образ с php-fpm и установлю туда ACL и некоторые расширения PHP
Дмитрий
Anonymous
А зачем его перезапускать? )
Когда добавляете новый пул php-fpm, необходимо перезапустить сервис
Georgiy
в чем разница для тебя, перезапустить докер с php-fpm или перезапустить чистый php-fpm ?
Александр
А можно тут вопросы по nginx?)
Александр
Не отрабатывает fastcgi_read_timeout. В скрипте поставил sleep(3);die('!!');, он возвращает ответ # kis.avtostroigrad.local upstream kis.avtostroigrad.local { ## Can be connect with "avtostroygrad_default" network # avtostroygrad_nginx_1 server 172.20.0.5:80; } server { server_name kis.avtostroigrad.local; listen 80 ; access_log /var/log/nginx/access.log vhost; location / { proxy_pass http://kis.avtostroigrad.local; include /etc/nginx/vhost.d/kis.avtostroigrad.local_location; } } root@c7db4d59325f:/app# cat /etc/nginx/vhost.d/kis.avtostroigrad.local_location fastcgi_read_timeout 1s; client_max_body_size 100m;
Александр
что тут не так?)
Aleksandr
Когда добавляете новый пул php-fpm, необходимо перезапустить сервис
в случае с докером твой контейнер и будет сервисом
Александр
Я бы хотел 504) С большим такймаутом 504 возвращается, если скрипт отрабатывает 60 секунд
Anonymous
А базовый образ с php-fpm поддерживает ACL права по-умолчанию? Или всё же надо лезть в /etc/fstab ?
Ihor
Поделитесь опытом кто как крутит jenkins в сворме, интересует вопрос воркеры тоже в докере или отдельные машины? Если тоже в докере, то как билдить докер образы?
Alexander
Добрый всем день, опытные люди поделитесь волшебной пилюлей, есть сервис с несколькими контейнерами, хочу не сложную схему деплоя на хостинг vscale (ubuntu + docket image) без публикации на docker hub. Интересуюсь вопросом уже несколько часов так и не нашел нормального решения, те что узнал: поднять ci (но на это нужны ресурсы для системы) другой вариант самописный скрипт который сейвит образ отправляет на хост там лоадит, синкаем docker-compose.yml и поднимает это все. Если у кого были подобные потребности, поделитесь как решили вопрос, в какую сторону смотреть
Евгений
простите, реестр
Aleksandr
вариантов нет. а) через регистри б) через импорт/экспорт в) синк конфигов и сборка
Alexander
смотрел этот вариант dtr требует 8 гб, варианты либо локально разворачивать либо посмотреть другое решение, на vscale будет дорого
Aleksandr
у меня либо на vscale либо на DO крутится
Alexander
@Aleksandr Zelenin ресурсов не много требует?
Alexander
я сегодня смотрел материал тут https://docs.docker.com/datacenter/dtr/2.4/guides/#image-management
Aleksandr
Alexander
пишут нужно 4 Гб на сам dtr + при установке есть упоминание что нужно upc (еще 4 гб)
Aleksandr
Docker Trusted Registry (DTR) is a commercial product
Alexander
это энтерпрайз
понял, спасибо, попробую это решение, тогда в других потребность отпадает, еще раз спасибо!
Petr
У меня есть веб-приложение на PHP: nginx + php-fpm . Хочу упаковать в Docker, чтобы поставлять клиенту всё сразу: и настройки php, и настройки nginx, и код приложения. Первый вариант: упаковать всё в один контейнер, но это как-то не Docker-way. Второй вариант: отдельный контейнер для nginx, отдельный для php-fpm, поднимать с помощью Compose. Но куда в этом случае положить код приложения? Если положу внутрь контейнера с php-fpm, то nginx не будет иметь доступа к статике (css, js файлы). Гуглил запросом «Docker php-fpm nginx» - в интернете куча статей, но во всех примерах код приложения лежит на host машине и пробрасывается в контейнеры nginx и php-fpm через volumes - не мой вариант. Я хочу поставить заказчику «всё в коробке», чтобы без дополнительного скачивания исходников на хост машину. Кто-нибудь сталкивался с такой же задачей: упаковать всё приложение в Docker, аккуратно, красиво - но как?
Ixtiyor
У меня есть веб-приложение на PHP: nginx + php-fpm . Хочу упаковать в Docker, чтобы поставлять клиенту всё сразу: и настройки php, и настройки nginx, и код приложения. Первый вариант: упаковать всё в один контейнер, но это как-то не Docker-way. Второй вариант: отдельный контейнер для nginx, отдельный для php-fpm, поднимать с помощью Compose. Но куда в этом случае положить код приложения? Если положу внутрь контейнера с php-fpm, то nginx не будет иметь доступа к статике (css, js файлы). Гуглил запросом «Docker php-fpm nginx» - в интернете куча статей, но во всех примерах код приложения лежит на host машине и пробрасывается в контейнеры nginx и php-fpm через volumes - не мой вариант. Я хочу поставить заказчику «всё в коробке», чтобы без дополнительного скачивания исходников на хост машину. Кто-нибудь сталкивался с такой же задачей: упаковать всё приложение в Docker, аккуратно, красиво - но как?
use docker-compose (docker stack) - nginx - php-fpm — mount volume here and link it in nginx
Ixtiyor
better way to use some kind of Amazon S3 service, in this way you can scale your docker images in different machines
Petr
Последняя фраза «mount volume here and link it in nginx» - можно подробнее? Что куда монтировать?
Ixtiyor
Последняя фраза «mount volume here and link it in nginx» - можно подробнее? Что куда монтировать?
docker has different types of volumes, please refer to documentation for more information. in general, you can create docker volume and link it in both images, or bind your host machine directory into docker container: Example: docker run -v host_machine_folder:/var/www/html/data xyz:tag
Gaiaz
У меня есть веб-приложение на PHP: nginx + php-fpm . Хочу упаковать в Docker, чтобы поставлять клиенту всё сразу: и настройки php, и настройки nginx, и код приложения. Первый вариант: упаковать всё в один контейнер, но это как-то не Docker-way. Второй вариант: отдельный контейнер для nginx, отдельный для php-fpm, поднимать с помощью Compose. Но куда в этом случае положить код приложения? Если положу внутрь контейнера с php-fpm, то nginx не будет иметь доступа к статике (css, js файлы). Гуглил запросом «Docker php-fpm nginx» - в интернете куча статей, но во всех примерах код приложения лежит на host машине и пробрасывается в контейнеры nginx и php-fpm через volumes - не мой вариант. Я хочу поставить заказчику «всё в коробке», чтобы без дополнительного скачивания исходников на хост машину. Кто-нибудь сталкивался с такой же задачей: упаковать всё приложение в Docker, аккуратно, красиво - но как?
видимо только так "Первый вариант: упаковать всё в один контейнер"
Ixtiyor
he wants to pack whole project into container, without volumes from a host
its not correct way if your service doing uploads, after container kill/start you loose all your data, thats why when docker used for databases, most of the time data folder bind to host machine
Ixtiyor
what he is asking almost similar to hosting databases in container, you have dynamic data, it changes, it should be kept somewhere
Ixtiyor
if service only serving static files, then its ok to put it inside container
Petr
what he is asking almost similar to hosting databases in container, you have dynamic data, it changes, it should be kept somewhere
Actually I do not have any dynamic data, only application code (php, js, css). So I want to pack my code with php-fpm and with nginx
Petr
ты можешь volume шарить между контейнерами
Читал про такое, но разве я могу заранее наполнить это volume своими исходниками на этапе Docker build?
twwlf
Petr
Понял намёк, пошёл изучать вопрос с volumes глубже
Petr
Вот ещё вариант с двумя контейнерами в голову пришёл: скопировать PHP исходники в контейнер php-fpm, а всю статику отдельно скопировать внутрь контейнера с nginx (благо статика в дереве исходников проекта вся в отдельной папке public). Тут главное при деплое консистентные версии контейнеров поставить, чтобы статика соответствовала php коду
Petr
Но вообще вопрос должен быть популярным, ведь точно так же работают и Ruby и Python и Node приложения - статику раздаём через nginx, а код отдаём интерпретатору. Как все эти ребята деплоят докером? Все держат исходники на хост машине?
a1eXei
мне кажется разрабы собирают исходники на своей машине и деплоят в реестр(свой локальный), а потом просто на сервере запускают
Ihor
Все верно, я рубишку запускаю именно так, на локальной машине собираю статику и потом только билжу отбраз. Далее nginx отдает статику, а все остальное на рельсу идет. Вот только возникла проблема в сворме, тут нельзя делать volume_from и приходится теперь билдить два образа, один nginx+статика и один с рельсой.
Gustavo Imputsa
мне кажется разрабы собирают исходники на своей машине и деплоят в реестр(свой локальный), а потом просто на сервере запускают
Они конечно неудобно придули что реестр должен быть с ssl обязательно Нельзя было по ssh ключу или как?
Gustavo Imputsa
Не знаю к чему я это сказал лол
a1eXei
в этом вроде можно и без ssl, ты у себя пушишь образ, но я хз, я не пробовал у себя реестр поднимать, не до него пока
Ihor
А в чем проблема получить letsencrypt? У меня вообще всем этим traefik занимается, я просто запустил обрал registry, указал домен и он сам получил сертификат и все работает
Mentat
Никто не запрещает проксировать не-https регистри с помощью nginx(докинув все правильные параметры для A+) - это вообще штатный вариант, чуть ли не в доке описанный
Tadeusz
забанят letsencrypt в один день - с ума посходите)
Tadeusz
у меня на каждый проект свой сертификат идет, а их ~90