Artem
почему нет ?
smile
Artem
например есть docker build использовать, то указывается нужный как
docker build -f path/to/Dockerfile
Artem
Отлично. А инструкция FROM работает только для докерхаба? От соседнего докерфайла можно наследоваться?
Artem
Artem
Спасибо
Ivan
Chebyrash
Друзья, подскажи пожалуйста как поставить лимит на логи контейнера
Konstantin
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 - название твоего сервиса
Hикoлaй
Илья
Ну сделай чтобы был основан на nginx а не на fpm
Какой толк только от fpm без веб сервера
Илья
И у тебя будет один контейнер с одной задачей
Илья
А почему не сделать один контейнер nginx с конфой для всех прилождух
А fpm там указывать разный?
Илья
В одной секции
fastcgi_pass php-fpm:9000;
В другой fastcgi_pass php-fpm2:9000;
Hикoлaй
Ранее я собирал контейнеры с прилагами просто основываясь на alpine, и устанавливая в них nginx и php-fpm, из за этого приходилось устанавливать в контейнерах еще и supervisor чтобы данный зоопарк там нормально запускался.
но это, ИМХО, самая уебанская практика, не хочу больше так писать)
Илья
Полюбому можно свести на один домен, просто в конфиге nginx указать в зависимости от uri отправлять на опредлеленный php
Илья
upstream azaza {
server domain:80;
}
server {
listen 8080;
location /hello/ {
proxy_pass http://azaza/;
Илья
Хотя мож я туплю. Сорян.
Илья
Мож более опытные помогут
Илья
Эх
Vladimir
Доброе утро. Ребят, а именно backend разработчики, как вы выполняете migrations, seeds, clear cache и queue с докером? Заходите в контейнер через ssh или все таки удалось нормально автоматизировать? А если удалось, то поделитесь опытом, расскажите как
Артём
Vladimir
Что имеется ввиду под зашить? Очередь как минимум это отдельный фоновый процесс. Он наверное должен быть в отдельном контейнере, иметь конфигурацию языка, к примеру php для его использования, подключения к БД и т.д. Но кажется что это немного жирно для выполнения одной команды. Хотя могу ошибаться.
Hикoлaй
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й
stanopolous
stanopolous
они даже у себя в доках убрали это
stanopolous
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
Each container should have only one concern.
Александр
Илья
Было =)
Artem
Всем привет. Подскажите как передать переменные среды заданные при запуске докер контейнера (через environment: или -e) в его исполняемый sh файлы который стартует по крону внутри этого же контейнера.😁
Илья
Ну как бы да. Ты образ свой пилишь а потом контейнер его мутиш
Илья
Но минус только в том что если много туда запихать сервисов то теряется гибкость в подмене
Hикoлaй
Hикoлaй
Дима
--init
Дима
По идее
Дима
Мне не очень нужно было, делю на контейнеры,
Hикoлaй
Hикoлaй
SeniorAnykey
Hикoлaй
Илья
Хватит легкие пути! Даешь хардкор!
Artem
🤔
Подскажите плз, ставлю докер с CentOS 7, по гайду с офф сайта, при запуске докера он ругается что нет цепочек а iptables, кто нибудь знает как решить?
Sergey
Anonymous
Есть у докера проблема с логом с контейнера? запускаю docker logs -f [name], ожидаю вывод как на обычном серваке(логи веб сервера, или логгинг из приложения), но он отличается, как буд-то в контейнера что-то игнорится. При чем иногда все норм и вывод как и ожидалось.... Есть мысли в чем косяк?
Александр
У меня есть ноут, но он иногда работает как-то не так, как другой такой же у друга. Есть мысли в чём косяк?
Sergey
Илья
Это он серьезно троллит
Sergey
это было настолько тонко что ты не заметил
Александр
Для начала бы конкретный вопрос, а не свои ощущения)
Александр
Попробуйте сами прочитать свой вопрос и понять конкретную проблему)
Александр
Официальный образ nginx access и error логи делают симлинками на устройства, которые и являются логом контейнера. Формат этих логов можете настраивать на свой вкус и цвет в конфиге nginx