Alexey
У тебя в нормальной конфигурации в контейнере работает один родительский процесс. В Dockerfile ты говоришь "запусти nginx". В командной строке ты говоришь "нет, не слушай Dockerfile, запусти bash".
Роман
Не знал, что оно так работает! Теперь понял.
Boris
Как решить задачу с подключением http/2 в docker? Требуется сертификат, а я цепляю его аж на лоад балансере
Роман
Кстати, docker exec
Да, теперь понимаю, что docker run -it xxxx bash И docker exec -it xxxx bash имеют совершенно разный результат.
Anonymous
Как решить задачу с подключением http/2 в docker? Требуется сертификат, а я цепляю его аж на лоад балансере
Терминировать http2 на балансировщике или прокидывать его до целевого контейнера. Я бы на первом остановился.
Anonymous
Или вопрос в том - как на БН закинуть сертификат для сайта ?
Boris
Нет, просто использую elastic load balancer, а он в этом понятии не конфижится
Boris
поэтому ответ в http2 нужно отдать из контейнера
Anonymous
Нет, просто использую elastic load balancer, а он в этом понятии не конфижится
не знаю что такое elastic lb, но их логики - если он терминирует http, то никакого http2 не будет еще на согласовании протоколов. если же он прокидывает tcp в контейнет, то возможность установки http2 - дело клиента и сервера. Может этот самый elastic lb надо заменить на что-то ? или это тот самый с амазона ?
Boris
Верно, с амазона
Anonymous
Ну а докер тогда тут причём ? Может в чате aws и спросить ?
Boris
В докере nginx должен работать по http/2, тогда и ELB будет
Boris
Вопрос касается докера, т.к. интересно как решают этот вопрос используя контейнеры
Boris
Где как правило ни хостнеймов ни сертификатов нет
Alexey
Господа, есть ещё вопрос. Есть задача идентифицировать воркеры работающие в Swarm. Ну, то есть чтобы знать что не "какой-то воркер зафейлил таск", а что вот конкретный запуск. В среде внутри контейнера есть что-то что может каждый таск Swarm идентифицировать? Или лучше просто при запуске воркера в контейнере генерить UUID и его использовать для идентификации?
Anonymous
Где как правило ни хостнеймов ни сертификатов нет
Под словом hostname ты имеешь ввиду http-заголок Host, который клиент присылает или backend ? А вообще вот - https://github.com/jwilder/nginx-proxy + lets-encrypt proxy companion Еще коллеги traefic и что-то там в кубернетесе хвалили, но я не использовал.
who are you
Ты используешь entrypoint.sh или supervisor?
Хз. Ни того ни другого вроде😄 я не сильно шарю в этом
a1eXei
Оо, как раз хотел сказать. Ранее когда спрашивал, у меня почему то не работал nginx-proxy и traefik внутри контейнера. сейчас я понял свою ошибку, что контейнеры в бэкенде после прокси, у них можно не публиковать порты и проксировать нужно на внутренний порт контейнера а я раньше проксировать с внешнего 80 на внешний 8080 и получал ошибку bad gateway 😂
Dmitry
Alexander
Доброго времени суток. Вопрос по сборке php приложения в докере. Как можно упаковать так, чтобы в одном контейнере запускался веб сервер (nginx) и php(fpm) или так плохо делать? Если плохо, то как тогда собирают подобное? Используют php-apache образ?
Kirill
+
Alexander
Проще разбить на 2 контейнер, нжинкс для статики и фпм для пыха
Просто хочется приложение запускать в одном контейнере. Не удобно на 2
arts
Просто хочется приложение запускать в одном контейнере. Не удобно на 2
Запихай их в docker compose и запускай/убивай одной командой
Alexander
Запихай их в docker compose и запускай/убивай одной командой
Тогда у меня вопрос как это в прод выкатывать. Если не пробрасывать volume, а закидывать приложение через COPY, то непонятно как закинуть и в nginx и в php-fpm
Алексей
Просто хочется приложение запускать в одном контейнере. Не удобно на 2
Так фронт и бэк у тебя разные приложения априори
Алексей
Для фронта нужно обращаться нодой, нам, вебпаком..... Для Бэка хватит хдебуга и компостера
Alexander
Ну это можно через multistage build собрать
Alexander
И мне больше нравится рассматривать фронт и Бек как составляющие одного приложения
arts
И мне больше нравится рассматривать фронт и Бек как составляющие одного приложения
А если потом к этому добавятся крон, редис, очереди какие-нибудь? Тоже кагбэ составляющие приложения. Тоже всё в один контейнер пихать будешь?
Alexander
Есть ведь официальные образы apache-php
Alexander
Их не используют?
arts
Апач вообще труп давно
arts
И там пхп работает внутри процесса апача, как подключаемая библиотека
Alexander
А, понятно. В общем только разделять на 2 контейнера?
arts
Да
arts
Не воспринимай контейнер как виртуалку. Контейнер — это всего лишь изолированное окружение для процесса.
Alexander
Тогда не понимаю как без volume прокидывать код приложения в fpm и nginx контейнеры
arts
Копировать при сборке.
Добрый вечер, господа. А чем бы максимально дёшево по железу замониторить докер ноду?
Aleksey
Жирновато
Код открытий, выкинь лишнее
bebebe
Добрый вечер, господа. А чем бы максимально дёшево по железу замониторить докер ноду?
а что вы вкладываете в этот вопрос?нотификации нужны например?
а что вы вкладываете в этот вопрос?нотификации нужны например?
Скорее загруженность железок и поиск того, что грузит больше всего
bebebe
максимально дешево, это tmuxinator темлпейт который запускает tmux сессию на все машины и запускает там htop например
Sergey️
Error parsing reference: "debian:jessie-slim as builder" is not a valid repository/tag: invalid reference format В dockerfile написано вот так FROM debian:jessie-slim as builder Докерфайл честно украден, такой синтаксис больше не поддерживается?
Sergey️
похоже регистр для AS был важен
Sergey️
Нет, та же ошибка
bebebe
docker какой версии?
Sergey️
docker какой версии?
Docker 17.03 был, сори нужен 17.05
Alexander
Копировать при сборке.
Извини, что беспокою опять, если есть время, мог бы ты глянуть на репозиторий (он очень простой) примера как собирается php приложение. Так ли делают? спасибо https://git.quantick.ru/quantick/docker-php-nginx-multistage
Роман
Друзья, доброе утро! Я с теми же вопросами. Снова нужна ваша помощь. Собираю вот такой контейнер: https://gist.github.com/rrubashkin/178296746a73ea583d89ae8ab75b9540 Но, он умирает сразу после запуска (docker run -d). Перепробовал уже много вариантов, но, ничего не получается. Что я делаю не так? Заранее спасибо
Siarhei
ДД, подкажите - вот из мурзилки docker run -d -p 8000:8000 -v /local/config.yml:/opt/config.yml:ro --name=registry-ui quiq/docker-registry-ui вопрос а разве можно смотнировать файл (именно фай а не директорию )при таком запуске??? я просто туплю и не могу понять, контейнер падает по логичной причине что config.yaml - это директория
Mikhail
они в разных так то
FROM composer AS builder COPY ./composer.json /var/www/app/composer.json WORKDIR /var/www/app/ RUN composer install --ignore-platform-reqs --no-scripts COPY . /var/www/app/ FROM php:fpm AS app COPY --from=builder /var/www/app/ /var/www/app/ EXPOSE 9000 FROM nginx AS web COPY default.conf /etc/nginx/conf.d/default.conf COPY --from=builder /var/www/app /var/www/app EXPOSE 80
Mikhail
Они у тебя так разные получаются?
Alexander
это multistage build
Alexander
https://git.quantick.ru/quantick/docker-php-nginx-multistage/src/master/docker-compose.yaml
Alexander
вот композ файл
Mikhail
Жесть какая-то
Anonymous
А зачем nginx и php-fpm в одном контейнере
Привет! Нет ли у тебя ссылки на бест практикс, как грамотно разделить nginx с php-fpm, чтобы не было траблов с отдачей статики и т.д включая правильное проксирование с nginx на php-fpm cgi. Спасибо!
Alexander
а как прокинуть данные из fpm контейнера в nginx?
Alexander
без использования volume
Mikhail
Привет! Нет ли у тебя ссылки на бест практикс, как грамотно разделить nginx с php-fpm, чтобы не было траблов с отдачей статики и т.д включая правильное проксирование с nginx на php-fpm cgi. Спасибо!
location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } # Mitigate https://httpoxy.org/ vulnerabilities fastcgi_param HTTP_PROXY ""; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; ...
Mikhail
а как прокинуть данные из fpm контейнера в nginx?
Не надо ничего никуда прокидывать
Mikhail
Данные должны быть в pho fpm
Mikhail
По тому пути что указаны в конфигурация nginx
Alexander
По тому пути что указаны в конфигурация nginx
Даа? Вот я лох, спасибо, пойду разбираться дальше. Думал что данные должны быть и там и там
Alexander
Данные должны быть в pho fpm
не работает так, пишет file not found
Роман
Друзья, может кто-нибудь подсказать?
Роман
Друзья, доброе утро! Я с теми же вопросами. Снова нужна ваша помощь. Собираю вот такой контейнер: https://gist.github.com/rrubashkin/178296746a73ea583d89ae8ab75b9540 Но, он умирает сразу после запуска (docker run -d). Перепробовал уже много вариантов, но, ничего не получается. Что я делаю не так? Заранее спасибо
Alexander
Данные должны быть в pho fpm
Всё, дошло, разделил на разные Dockerfile'ы - работает. Но в сборке nginx всё равно нужно делать COPY проекта, если совсем не прокидывать - не работает
Alexander
По тому пути что указаны в конфигурация nginx
https://git.quantick.ru/quantick/docker-php-nginx-multistage Вот что вышло