@ru_docker

Страница 239 из 610
Виталий
25.12.2016
17:14:23
ну приехали :)

Evgeny
25.12.2016
17:14:54
Если хотите докер - постарайтесь понять чем он отличается от виртуализации и перестаньте делать крокодилов из швейной машинки

У Фила - особая ситуация, не надо его кейс расширять на всех. Если у вас свой проект - делайте нормально

Виталий
25.12.2016
17:15:47
а где видно что я хочу сделать виртуализацию?

Google
Evgeny
25.12.2016
17:16:08
Виталий
25.12.2016
17:17:13
что не правильного в том, что под каждый процесс я создал отдельный контейнер? и того уже имею контейнеры nginx php memcache db

уверен, что ничего. Так как инфтраструктура на докере и должна выглядеть.

Осталось только два контейнера снабрить кодом и все заработает.

Evgeny
25.12.2016
17:18:11
Не надо код делать отдельно

Это моветон и опенвезешность

Виталий
25.12.2016
17:22:35
Я не спорю, вариант костыльный, но удобный. У него есть несколько преимуществ: 1. Отдельны контейнер с кдом проще обслуживать. Чтобы обновить код нужно только пересоздать простой контейнер, а не пересобирать заново все компоненты пхп. Да, можно сделать наследование контейнеров. Но проддержка от этого только усложниться. 2. Отдельный контейнер с кодом отлично вписываеться в объектную модель. app / \ nginx php вместо app (php + code) -- mount --> nginx

Phil
25.12.2016
17:22:48
Один контейнер с нгинксом. Один с пхпфпм и вшитым кодом
Да не надо вшивать код, что за жопень-то?

Виталий
25.12.2016
17:23:58
Да не надо вшивать код, что за жопень-то?
надо или не надо это уже дело кажого. Пр разработке можно и не вшивать, а хранить на хост машине. А при деплое надо вшивать, чтобы ничего не пришлось собирать на продакшене и часом не запороть все при сборке. Исключается человеческий фактор до минимума

Evgeny
25.12.2016
17:24:34
Да не надо вшивать код, что за жопень-то?
А хранит его отдельно не жопа? Давайте еще масштабировать добавлением второго пхпфпм в тот же контейнер, чего уж там

Виталий
25.12.2016
17:25:31
Кеш сборки решает проблему пересборки пыхи
да, кеш сборки решает когда нет изменений в самых правилах сборки. Если добавить модуль какой-то в контейнер с пыхой, то придется пересобрать два контейнера (если сделать наследование)

как видно, каждый из нас прав :) и я предлагаю не спорить. За время изучения докера я насмотрелся на контейнеры в которых все службы зашиты, так что мой вариант еще куда не шел :)

Google
Виталий
25.12.2016
17:27:14
сейчас вопрос не имеет отношений конкретно к моему приложению. Я не могу понять, почему volumes_from не монтируется

и кто-то может сказать, что будет, если в compose написать у сервиса вот так volumes: - /var/www/html что и куда примонтируется или создасться?

Evgeny
25.12.2016
17:34:58
Если так хочется шарить из контейнера - почему не шарить из того же где уже работает фпм?

В чем смысл разделять?

Виталий
25.12.2016
17:36:06
Если так хочется шарить из контейнера - почему не шарить из того же где уже работает фпм?
Есть несколько преимуществ: 1. Отдельны контейнер с кодом проще обслуживать. Чтобы обновить код нужно только пересоздать простой контейнер, а не пересобирать заново все компоненты пхп. Да, можно сделать наследование контейнеров. Но проддержка от этого только усложниться. 2. Отдельный контейнер с кодом отлично вписываеться в объектную модель. app / \ nginx php вместо app (php + code) -- mount --> nginx

Evgeny
25.12.2016
17:37:26
Второй пункт не понимаю, извините. Первый, правда, тоже. Чем проще? Что надо все время таскать два вместо одного?

Пересборка компонентов решается кешом сборки

Виталий
25.12.2016
17:39:45
второй пункт - обычное объектное мышление. Общие части вынести в отдельный объект. Если у двух контейнеров есть что-то общее (код), значит это общее лучше сделать отдельным контейнером. Я так мыслю :)

мы пока спорим на счет моей инфтраструктуры, но в этом нет смысла :) я же не навязываю ее вам

Evgeny
25.12.2016
17:41:00
Я первый раз увидел человека который сможет внятно обосновать свою точку зрения, а я пытаюсь ее понять уже давно :)

Виталий
25.12.2016
17:46:07
Виталий
25.12.2016
18:00:34
Будет создан анонимный том в /var/lib/docker
есть контейнер app, вот его Dockerfile ---- FROM busybox:musl COPY ./source /var/www/html WORKDIR /var/www/html ---- что нужно сделать, чтобы его папку /var/www/html можно было через volumes_from смонтировать в другой контейнер?

Sergey
25.12.2016
18:06:19
Volume /var/www/html

Виталий
25.12.2016
18:07:21
Volume /var/www/html
в этом Dockerfile или в файле контейнера к которому нужно примаунттить? но ведь эта конструкция помечает указанные пути к монтированию с хост машины или с другого контейнера при запуске создаваемого контейнета.

Volume /var/www/html
в Dockerfile контейнеров в которых я жду эту папку из вне указано VOLUME ["/var/www/html"]

Sergey
25.12.2016
18:14:00
в докерфайле с сорцами, в остальных volumes_from

Виталий
25.12.2016
18:14:38
Google
Виталий
25.12.2016
18:28:10
в докерфайле с сорцами, в остальных volumes_from
невероятно, но заработало! Скажи, пожалуйста, в чем была моя ошибка? Ведь команда VOLUME ["/var/www/html"] помечает том к монтированию из вне, а у меня он уже был в контейнере. Где я ошибся?

Sergey
25.12.2016
18:30:10
Вот же, первой строчкой) "The VOLUME instruction creates a mount point with the specified name and marks it as holding externally mounted volumes from native host or other containers." https://docs.docker.com/engine/reference/builder/#/volume

Виталий
25.12.2016
18:31:44
Вот же, первой строчкой) "The VOLUME instruction creates a mount point with the specified name and marks it as holding externally mounted volumes from native host or other containers." https://docs.docker.com/engine/reference/builder/#/volume
точняк, тоже только что увидел в доке. Мне кажется в прошлые разы не дочитывал предложение до конца, или просто глаза замылились после дня ковыряния этого. Спасибо огромное!

Sergey
25.12.2016
18:32:55
но на самом деле некоторые места в доках выделяли бы жирным :)

Phil
25.12.2016
18:40:53
Если так хочется шарить из контейнера - почему не шарить из того же где уже работает фпм?
Ну т.е. мы любой чих пересборки контейнера сопрягаем с набивкой его кодом

Evgeny
25.12.2016
18:42:02
Любой коммит в мастер - да

Если ты меняешь каждые 5 минут настройки фпм - что-то с тобой не то

Phil
25.12.2016
18:58:05
Sergey
25.12.2016
19:00:38
Сложно поспорить

Evgeny
25.12.2016
19:07:26
Ну да, ну да. Настройки меняете каждые пять минут вы, делите все поровну просто так тоже вы, а усложняю я

Виталий
25.12.2016
19:12:18
кто GitLab использует?

Sergey
25.12.2016
19:12:39
Ну т.е. мы любой чих пересборки контейнера сопрягаем с набивкой его кодом
Вот объясни, зачем на хабе в офф репах on build образы для python, например?

Phil
25.12.2016
19:23:08
Ну да, ну да. Настройки меняете каждые пять минут вы, делите все поровну просто так тоже вы, а усложняю я
эээ... ну для меня например это одна из фишек докера - возможность играть настройками на ходу практически

Виталий
25.12.2016
19:24:16
если надо играть с настройками - прокиньте их на хост машину и все. Или меняйте сразу в контейнере, потом сохраните вариант конечный для сборки повторной и все.

пересобирать контейнер каждый раз нет смысла. Схема котрую я создавал для деплоймента. Для дева будет все прокинуло на хост-машину и агонь!

Phil
25.12.2016
19:25:51
эээ... а в чем разница с обычными сервисами?
нука сходу расскажи мне как с пхп5.6 на 7.0 переехать в обычном сервисе

Evgeny
25.12.2016
19:26:40
killall php-fpm && systemctl start php7

Виталий
25.12.2016
19:27:05
1. Берем, тушим проект и начинаем терять деньги 2. Сносим старый пых 3. ставим новый пых 4. Продолжаем терять деньги 5. В концу дня профит!

Google
Evgeny
25.12.2016
19:29:29
Но вообще переезд с 5.6 на 7, думается мне, потребует фиксов в коде, это не просто запустить в новом контейнере.

Phil
25.12.2016
19:48:44
Но вообще переезд с 5.6 на 7, думается мне, потребует фиксов в коде, это не просто запустить в новом контейнере.
ну. фиксы в коде ты как делать будешь? докер это ведь меньше всего про прод. хотя и про него

Evgeny
25.12.2016
19:50:23
Ну так же как и сейчас - закоммичу фикс, дальше дженкинс выкачивает сырцы, собирает контейнер, прогоняет тесты, деплоит на стейджинг, прогоняет интеграционные и функциональные тесты, дальше нажму кнопку в дженскинсе и деплойну блюгрином на прод

На локали у меня сырцы тоже маунтятся с локалоста в контейнер, но блин - это локальная разработка

Evgeny
25.12.2016
19:52:36
Чем больше вы сейчас делаете фигню, тем сложнее настроить ci/cd дальше

Admin
ERROR: S client not available

Виталий
25.12.2016
20:11:05
Чем больше вы сейчас делаете фигню, тем сложнее настроить ci/cd дальше
слушай, а хорошая ли идея разворачивать gitlab из докер образа? как его конфигурировать-то потом?

Evgeny
25.12.2016
20:12:43
ну. так докер в основном про это
Не только. Докер - это про ci/cd. Когад у тебя в тестах и проде один контейнер, без эдж кейсов

слушай, а хорошая ли идея разворачивать gitlab из докер образа? как его конфигурировать-то потом?
Гитлаб давно поставляяется как контейнер. Только раньше это были образы которые ложильсь в опт, теперь - докер имаджи. Я хз как сейчас его конфигурить, но обычно они это хорошо продумывают

Vit
25.12.2016
20:25:21
прошу прощения за длинный текст, если не сложно то ответьте плиз как копать или сделать, сам разбираюсь еще с деталями а задачу надо выполнить скорее Есть приложение написанное на Meteor.js - при деплое на сервер через https://github.com/kadirahq/meteor-up оно запускается внутри docker Есть приложение https://github.com/arachnys/athenapdf - выдает то что надо с помощью команды в консоли docker run ... Мне надо эту команду запустить внутри контейнера с Meteor и получить результаты При установке meteor-up есть возможность залинковать docker, как я понимаю (есть в документации meteor-up) из Meteor пытаюсь запустить с помощью node.js вызова

Vit
25.12.2016
21:47:47
внутри meteor docker команда docker не найдена

Evgeny
25.12.2016
21:48:17
значит не там ее надо запускать. команду можете написать?

Vit
25.12.2016
21:48:34
$(which docker) run --security-opt seccomp=unconfined --rm -v $(pwd):/converted/ arachnysdocker/athenapdf athenapdf ${printUrl} -S

printUrl это любой url

Google
Vit
25.12.2016
21:50:25
-S это отправка результата в stdout

--security-opt seccomp=unconfined - эт в целом лишнее

Evgeny
25.12.2016
21:51:31
добавить докер в контейнер с метеором - идея плохая. лучше из метеора поднимать какуюто таску где-то (геарманд?) а на хосте рекгулярно запускать контейнер который будет проверять есть ли таска и запускать этот контейнер

Vit
25.12.2016
21:51:32
команду целиком пытаюсь запустить child_process.exec

dogitalocean

docker images - крутятся десяток я полагаю мне надо 2 вещи запустить image с athenapdf на каком то порту и правильно указать вызов из meteor

с передачей параметов и получением результата

Evgeny
25.12.2016
21:53:58
Если athenapdf умеет управляться через порт - тогда надо связать два контейнера через —link и управлять из метеора через порт

Vit
25.12.2016
21:54:36
docker run -p 8080:8080 --rm arachnysdocker/athenapdf-servicedocker run -p 8080:8080 --rm arachnysdocker/athenapdf-service

ага - вроде понял почти - там в конце после большой картинки полностью написанно что надо :) https://github.com/arachnys/athenapdf

а docker-address как определить - это localhost или ip компьютера внешний или еще что то ?

Sergey
25.12.2016
21:58:53
-

Evgeny
25.12.2016
21:59:25
если чреез линк - то по имени хоста

если через экспоз порта - зависит от того на что экспозите

Vit
25.12.2016
22:55:28
сейчас если запускаю команду docker run -p 8080:8080 --rm arachnysdocker/athenapdf-service то она работает но висит в консоли - как правильно ее запускать чтоб она запущенно было всегда

Sergey
25.12.2016
22:56:23
-d

Docker run --help

Vit
25.12.2016
22:58:30
спасибо

N
26.12.2016
17:31:18
У меня вопрос не по докеру

Страница 239 из 610