
Виталий
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

Evgeny
25.12.2016
17:23:42

Виталий
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

Sergey
25.12.2016
17:59:58

Виталий
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

Evgeny
25.12.2016
18:16:20

Google

Виталий
25.12.2016
18:28:10

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

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

Виталий
25.12.2016
18:33:29

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

Phil
25.12.2016
19:23:08

Evgeny
25.12.2016
19:23:45

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

Phil
25.12.2016
19:25:51

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

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

Виталий
25.12.2016
19:51:51

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

Phil
25.12.2016
19:59:00

Admin
ERROR: S client not available

Phil
25.12.2016
20:02:36

Виталий
25.12.2016
20:11:05

Evgeny
25.12.2016
20:12:43

Виталий
25.12.2016
20:14:47

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 вызова

Phil
25.12.2016
21:20:58

Evgeny
25.12.2016
21:47:26

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
У меня вопрос не по докеру