Artem
почему нет ?
Artem
например есть docker build использовать, то указывается нужный как docker build -f path/to/Dockerfile
Artem
Отлично. А инструкция FROM работает только для докерхаба? От соседнего докерфайла можно наследоваться?
Artem
Спасибо
Ivan
Chebyrash
Друзья, подскажи пожалуйста как поставить лимит на логи контейнера
Дмитрий
привет, хочу стопнуть все контейнеры, есть ли разница между: docker stop $(docker ps -aq) и docker stop $(docker ps -q) везде предлагают первый вариант, хотя, как мне кажется, это одно и тоже
Konstantin
Так ты описание флагов то глянь
Konstantin
Зачем гадать то
Дмитрий
Так ты описание флагов то глянь
без -а выведутся только запущенные, но я то их потом в стоп передаю, зачем мне другие
Konstantin
Вот и ответ)
Дмитрий
Вот и ответ)
дак просто везде с -а пишут, зочем
Konstantin
Хз, это же интернеты)
Hикoлaй
Ребят, может кто сталкивался. Имеется несколько приложений на Laravel (php). В docker-compose описал такие сервисы: -nginx -postgres -rabbit -app 1 -app 2 -app 3 -... -app N Тут в каждом приложении (app N) dockerfile основан на php-fpm, тоесть в контейнере с прилагой только php и сама прилага. Контейнер с nginx прокидывается в каждую прилагу (volumes_from). На этом этапе все хорошо, все работает. Что надо: в контейнере с nginx завести виртуальный хост для проксирования каждой прилаги с одного домена. То есть, имеем домен api.example.com и нужно чтобы по запросу http://api.example.com/app1 отвечала прилага app 1, http://api.example.com/app2 отвечала прилага app 2 и т.д. Но так как в контейнерах с прилагами нет вебсервера, простым проксированием по имени контейнера обратится к ним не получится. Казалось бы, засунуть в каждую прилагу nginx и не парится, но это противоречит концепции докера "1 контейнер = 1 процесс", да и выглядит это как то по уебански. Как быть?
Илья
Сделай чтобы был в контейнере с приложением nginx а не php А в конфигах nginx укажи php:9000 или как оно там
Илья
location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass php-fpm:9000; try_files $uri =404; }
Илья
php-fpm - название твоего сервиса
Илья
Ну сделай чтобы был основан на nginx а не на fpm Какой толк только от fpm без веб сервера
Илья
И у тебя будет один контейнер с одной задачей
Hикoлaй
Ну сделай чтобы был основан на nginx а не на fpm Какой толк только от fpm без веб сервера
ну тут такое, nginx конфигурацию свою не меняет от сервиса к сервису, там только виртуальные хосты рознятся немного, а вот конфигурации php и набор модулей у каждого сервиса свои нет смысла делать общий php-fpm контейнер и толкать в каждую прилагу nginx
Илья
А почему не сделать один контейнер nginx с конфой для всех прилождух А fpm там указывать разный?
Илья
В одной секции fastcgi_pass php-fpm:9000; В другой fastcgi_pass php-fpm2:9000;
Hикoлaй
А почему не сделать один контейнер nginx с конфой для всех прилождух А fpm там указывать разный?
именно, так оно и сделано сейчас все, работает прекрасно. загвоздка в том что надо все это свести в 1 домен
Hикoлaй
Ранее я собирал контейнеры с прилагами просто основываясь на alpine, и устанавливая в них nginx и php-fpm, из за этого приходилось устанавливать в контейнерах еще и supervisor чтобы данный зоопарк там нормально запускался. но это, ИМХО, самая уебанская практика, не хочу больше так писать)
Илья
Полюбому можно свести на один домен, просто в конфиге nginx указать в зависимости от uri отправлять на опредлеленный php
Hикoлaй
Полюбому можно свести на один домен, просто в конфиге nginx указать в зависимости от uri отправлять на опредлеленный php
location /app1/ { rewrite ^/app1(/.*)$ $1 break; proxy_pass http://app1; } делаю проксированием но оно не будет так работать, ибо, как я писал ранее в контейнерах с прилагами отсутствует вебсервер, отвечать тупо некому
Илья
upstream azaza { server domain:80; } server { listen 8080; location /hello/ { proxy_pass http://azaza/;
Илья
Хотя мож я туплю. Сорян.
Илья
Мож более опытные помогут
Hикoлaй
Хотя мож я туплю. Сорян.
не, сорян, но я все это описал, не работает оно так))
Илья
Эх
Maxim
Привет, какую виртуальную машину на винду посоветуете в 2018. задачи, докер, nginx, front-end на виртуалке планирую поставить убунту сервер
Приготовьтесь к тому, что Volume будут тупить. Для front-end, может, не столь критично, но вот сайты на WP в таком контейнере работают в 1.5 - 2 раза медленнее, чем в просто виртуалке.
Vladimir
Доброе утро. Ребят, а именно backend разработчики, как вы выполняете migrations, seeds, clear cache и queue с докером? Заходите в контейнер через ssh или все таки удалось нормально автоматизировать? А если удалось, то поделитесь опытом, расскажите как
Vladimir
Что имеется ввиду под зашить? Очередь как минимум это отдельный фоновый процесс. Он наверное должен быть в отдельном контейнере, иметь конфигурацию языка, к примеру php для его использования, подключения к БД и т.д. Но кажется что это немного жирно для выполнения одной команды. Хотя могу ошибаться.
Vladimir
@gitkv, можешь показать его? Интересно что там выполняешь.
Hикoлaй
ENTRYPOINT ["/root/entrypoint.sh"] и сам файл: #!/bin/sh # Install dependencies composer install --no-interaction # Clear the cache php artisan cache:clear --no-interaction # Create database php artisan db:create # Run migrations if [ "$APP_ENV" = "production" ]; then php artisan migrate --force --no-interaction; else php artisan migrate:refresh --seed --no-interaction; fi echo "Service complete" # Run exec "$@" сам файл пока использую для разработки, поэтому пока не запаривался, потом надо пересмотреть немного
Vladimir
@gitkv, понял, спасибо! Довольно интересное решение. Думаю для меня самое то.
Hикoлaй
Ребят, может кто сталкивался. Имеется несколько приложений на Laravel (php). В docker-compose описал такие сервисы: -nginx -postgres -rabbit -app 1 -app 2 -app 3 -... -app N Тут в каждом приложении (app N) dockerfile основан на php-fpm, тоесть в контейнере с прилагой только php и сама прилага. Контейнер с nginx прокидывается в каждую прилагу (volumes_from). На этом этапе все хорошо, все работает. Что надо: в контейнере с nginx завести виртуальный хост для проксирования каждой прилаги с одного домена. То есть, имеем домен api.example.com и нужно чтобы по запросу http://api.example.com/app1 отвечала прилага app 1, http://api.example.com/app2 отвечала прилага app 2 и т.д. Но так как в контейнерах с прилагами нет вебсервера, простым проксированием по имени контейнера обратится к ним не получится. Казалось бы, засунуть в каждую прилагу nginx и не парится, но это противоречит концепции докера "1 контейнер = 1 процесс", да и выглядит это как то по уебански. Как быть?
неужели никто не сталкивался с такой задачей?
stanopolous
Ребят, может кто сталкивался. Имеется несколько приложений на Laravel (php). В docker-compose описал такие сервисы: -nginx -postgres -rabbit -app 1 -app 2 -app 3 -... -app N Тут в каждом приложении (app N) dockerfile основан на php-fpm, тоесть в контейнере с прилагой только php и сама прилага. Контейнер с nginx прокидывается в каждую прилагу (volumes_from). На этом этапе все хорошо, все работает. Что надо: в контейнере с nginx завести виртуальный хост для проксирования каждой прилаги с одного домена. То есть, имеем домен api.example.com и нужно чтобы по запросу http://api.example.com/app1 отвечала прилага app 1, http://api.example.com/app2 отвечала прилага app 2 и т.д. Но так как в контейнерах с прилагами нет вебсервера, простым проксированием по имени контейнера обратится к ним не получится. Казалось бы, засунуть в каждую прилагу nginx и не парится, но это противоречит концепции докера "1 контейнер = 1 процесс", да и выглядит это как то по уебански. Как быть?
"1 контейнер = 1 процесс" - it's so 2010
stanopolous
они даже у себя в доках убрали это
stanopolous
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ Each container should have only one concern.
Александр
Ребят, может кто сталкивался. Имеется несколько приложений на Laravel (php). В docker-compose описал такие сервисы: -nginx -postgres -rabbit -app 1 -app 2 -app 3 -... -app N Тут в каждом приложении (app N) dockerfile основан на php-fpm, тоесть в контейнере с прилагой только php и сама прилага. Контейнер с nginx прокидывается в каждую прилагу (volumes_from). На этом этапе все хорошо, все работает. Что надо: в контейнере с nginx завести виртуальный хост для проксирования каждой прилаги с одного домена. То есть, имеем домен api.example.com и нужно чтобы по запросу http://api.example.com/app1 отвечала прилага app 1, http://api.example.com/app2 отвечала прилага app 2 и т.д. Но так как в контейнерах с прилагами нет вебсервера, простым проксированием по имени контейнера обратится к ним не получится. Казалось бы, засунуть в каждую прилагу nginx и не парится, но это противоречит концепции докера "1 контейнер = 1 процесс", да и выглядит это как то по уебански. Как быть?
Проксировать в location fastcgi_pass app_N:9000
Илья
Было =)
Artem
Всем привет. Подскажите как передать переменные среды заданные при запуске докер контейнера (через environment: или -e) в его исполняемый sh файлы который стартует по крону внутри этого же контейнера.😁
Hикoлaй
они даже у себя в доках убрали это
типа нормальным считается сборка контейнера с заталкиванием в него и nginx и php и прилаги?
Илья
Ну как бы да. Ты образ свой пилишь а потом контейнер его мутиш
Илья
Но минус только в том что если много туда запихать сервисов то теряется гибкость в подмене
Hикoлaй
Но минус только в том что если много туда запихать сервисов то теряется гибкость в подмене
а как там выполнить все вместе на моем примере (php, nginx)? supervisor в тудой толкать?
Дима
--init
Дима
По идее
Дима
Мне не очень нужно было, делю на контейнеры,
Artem
если они были переданы, то должны быть доступны в контейнере
Контейнер запущен с CMD ["cron", "-f"] в самом кроне sh файл который выполняет определённое условие, и дергает пайтон приложение которому и нужны эти переменные
Hикoлaй
Контейнер запущен с CMD ["cron", "-f"] в самом кроне sh файл который выполняет определённое условие, и дергает пайтон приложение которому и нужны эти переменные
не пойму в чем загвоздка. если контейнер при запуске получил переменные окружения, то они будут в контейнере, пусть питон обращается к ним
SeniorAnykey
не пойму в чем загвоздка. если контейнер при запуске получил переменные окружения, то они будут в контейнере, пусть питон обращается к ним
в кроне может быть загвоздка. вроде были какие-то иногда проблемы с переменными окружения и кроном
Artem
не пойму в чем загвоздка. если контейнер при запуске получил переменные окружения, то они будут в контейнере, пусть питон обращается к ним
если я правильно понимаю при запуске пайтон приложения через sh скрипт он запускается в "изолированном" окружении.. тоесть этих переменных внтури нет
SeniorAnykey
если я правильно понимаю при запуске пайтон приложения через sh скрипт он запускается в "изолированном" окружении.. тоесть этих переменных внтури нет
а что мешает сложить все нужные переменные в какой-то env-файлик, скопирнуть его внутрь контейнера, а там уже передать их через sh или сразу питон на него натравить?
Илья
Хватит легкие пути! Даешь хардкор!
🤔
Подскажите плз, ставлю докер с CentOS 7, по гайду с офф сайта, при запуске докера он ругается что нет цепочек а iptables, кто нибудь знает как решить?
Anonymous
Есть у докера проблема с логом с контейнера? запускаю docker logs -f [name], ожидаю вывод как на обычном серваке(логи веб сервера, или логгинг из приложения), но он отличается, как буд-то в контейнера что-то игнорится. При чем иногда все норм и вывод как и ожидалось.... Есть мысли в чем косяк?
Александр
У меня есть ноут, но он иногда работает как-то не так, как другой такой же у друга. Есть мысли в чём косяк?
Sergey
Илья
Это он серьезно троллит
Sergey
это было настолько тонко что ты не заметил
Anonymous
У меня есть ноут, но он иногда работает как-то не так, как другой такой же у друга. Есть мысли в чём косяк?
а кто у нас у мамки такой умняшка и шутник?...... Инструмент может обладать недостатком, я могу этого не знать, вы можете знать, для этого и задают вопросы...
Александр
Для начала бы конкретный вопрос, а не свои ощущения)
Александр
Попробуйте сами прочитать свой вопрос и понять конкретную проблему)
Александр
Официальный образ nginx access и error логи делают симлинками на устройства, которые и являются логом контейнера. Формат этих логов можете настраивать на свой вкус и цвет в конфиге nginx