Gleb
/fixed *перекатишься на кубер
Anonymous
Anonymous
Драйвер поменяй на overlay
не помогает, ошибка выше
Anonymous
но пока решили не юзать swarm, так что проехали, спасибо
.
Как доберусь до компа скину решение
.
Точно не помню
manefesto
Никто не слал логи nginx сразу в fluentd->ELK
manefesto
а?
manefesto
просто у меня ощущение что у меня логи сожрут всё место чтобы потом их передавать в ELK, думаю настроить сразу logging и слать в ELK
George
А чем плохо слать в stdout, а докер уже настроить, чтобы слал куда надо?
докер не умеет слать куда-либо кроме как в файл json-file или в журналди
George
остальные драйверы косые и кривые
manefesto
https://docs.docker.com/config/containers/logging/configure/
manefesto
а это что ?
Maxim
остальные драйверы косые и кривые
Буду знать. Опыта использования - не имел, но видел, что они есть в оф.доке - думал все ок. Хочешь сказать полагаться на логирование докера не стоит совсем?
George
а это что ?
ты вообще читаешь что я пишу?
George
ну, попробуй - запусти любой драйвер, а потом дай команду docker logs. Что она напишет?
George
но аккуратно
manefesto
У меня вариантов не много, место быстро сожреться
George
журналди?
manefesto
место не сожреться ? У меня цель передать потом в ELK для аналитики
George
он автоматически тротллит и ротирует
manefesto
У меня цель ELK
Gleb
остальные драйверы косые и кривые
ну они не кривые они как раз что бы не писать на диск ничего, но это вызывает другую проблему - контейнер невозможно порестартить или остановить если удаленная система не доступна
manefesto
По поводу логов nginx в logstash https://rzetterberg.github.io/nginx-elk-logging.html Я так понимаю что мне никто не гарантирует доставку при большой активности
Заур
Спасибо! То что нужно 👍
George
либо гарантированная доставка и тогда приложенька может перестать принимать запросы от клиентов
George
либо негарантированная доставка и возможно, что если будет наплыв клиентов, то все будут обслужены, но логи не будут успевать обрабатываться
Askhat
Ребят, как мне localhost:8080 с машины пробросить в контейнер?
George
а зачем?
George
конкретнее задачу поставь
Askhat
Мне нужно временно запустить nodejs сервер на машине и пробросить порт в контейнер
George
ну, так запусти на 0.0.0.0:8080
Askhat
Ну тогда просто же порт на внешке будет
George
либо - запусти контейнер в хост моуд (тогда локалхост компа == локалхост контейнера)
George
либо третий вариант - извращаться с socat
Askhat
Мне надо, чтобы на внешке порта небыло
George
фарйволлом закрой
George
🤦‍♂️🤦‍♂️🤦‍♂️
George
либо опубликуй на адресе докер бриджа
George
ну, какой он там у тебя?
Askhat
Всё, разобрался, спасибо!
manefesto
Пришла странная мысль. Можно ли обновить data контейнер если он используется например в php-fpm ?
manefesto
Суть в том чтобы не перезапускать php-fpm
George
Поясни
manefesto
Дата это только код. Пришла мысль об обновлении без downtime и чтобы не дропнуть соединения текущих пользователей
kSandr
И как ты это видишь
полагаю он хочет просто поменять файлики в контейнере, но ничего не ребутить
manefesto
О, не видел что написали
Andrey
Не будет без потерь, а так заменяй
manefesto
заменять только через docker cp
manefesto
в общем понял что фигня
Andrey
заменять только через docker cp
Да, можешь так. Но это не бест вей.
Andrey
Подними второй, потом нжингсе смени конфиги, но всё равно с потерями. Есть лучше варики.
manefesto
green-blue
manefesto
хотел сделать проще
kSandr
green-blue
как-то так ... - name: create project project folder file: path: "/home/user/{{ project_ENV }}/project/" state: directory recurse: yes - name: first check nginx config command: nginx -t - name: detect upstream shell: cat /etc/nginx/upstreams/{{ project_ENV }}_project | grep "{{ project_upstream_blue }}" register: detect_result ignore_errors: True - name: set upstream green set_fact: upstream: "{{ project_upstream_green }}" name: "{{ project_name_green }}" when: detect_result is succeeded - name: set upstream blue set_fact: upstream: "{{ project_upstream_blue }}" name: "{{ project_name_blue }}" when: detect_result is failed - name: templating upstream template: src: "{{item.src}}" dest: "/etc/nginx/upstreams/{{item.dest}}" with_items: - {src: "upstream_project.j2", dest: "{{ project_ENV }}_project"} - name: templating docker-compose template: src: "{{item.src}}" dest: "/home/user/{{ project_ENV }}/project/{{item.dest}}" with_items: - {src: 'docker-compose.j2', dest: 'docker-compose.yml'} - name: Running project docker_service: project_src: "/home/user/{{ project_ENV }}/project" project_name: "{{ project_PROJECT_NAME }}" pull: no - name: Wait service shell: /bin/bash {{ role_path }}/files/wait.sh {{ upstream }} - name: second check nginx config command: nginx -t - name: nginx reload command: nginx -s reload - name: delete old container blue command: docker stop {{ project_upstream_blue }} when: detect_result is succeeded - name: delete old container green command: docker stop {{ project_upstream_green }} when: detect_result is failed
Andrey
Pack publishing проводит распролажу. Любая электронная книжка - 10$ (за штуку): https://www.packtpub.com/all-products
George
могу
Александр
Ребят, если я из одного image поднимаю несколько контейнеров с своими env , правильно ли я делаю что для каждого контейнера свой dockerfile?
George
в смысле?
George
логично env передавать через docker run -e .... или —env-file Или через аналогичные параметры docker-compose
Александр
Мне нужно поднять много однотипных апок с разными параметрами
Александр
И чтобы просто запустить композе и не писать сто раз run на каждый сервис
George
мы сделали просто через salt/ansible
George
делаешь массив параметров
George
оно само по ним идет и вызывает DOCKER API для создания контейнера с нужными параметрами
George
из плюсов - ты практически никаких новых сущностей не добавляешь.
George
а еще оно контролирует запущен ли контейнер и если нет, то создает его
George
@pro_ansible модуль https://docs.ansible.com/ansible/latest/modules/docker_container_module.html
Александр
Спасибо!