
Alex
14.03.2017
19:46:27
надо через nginx как-то шерить?
Нет. Надо завести энджинкс как реверс прокси для твоего сервера, а потом твой server должен отдавать энджинксу эти картинки. Я бы поднял rest api в server.
Такая же концепция, как flask + nginx. Flask пекеджится в uwsgi сервер, который через сокет общается с энджинксом. Все красиво.
При условии, что энджинкс тебе вообще нужен.
Если нет, просто подними рест на ноде и отдавай обратно картинку, которую ты достаешь в коде из файла на сервере.

Джон
14.03.2017
19:47:54
ага понял, для реста нгинкс мне не нужен, в принципе..

Google

Джон
14.03.2017
19:48:28
получается, мне нужно сделать просто через fs.createReadStream() доступ к файлам?

Alex
14.03.2017
19:49:00

Джон
14.03.2017
19:49:37
а ок ) немного прояснилось в любом случае, спасибо )) пошел ковырять

Andrey
15.03.2017
07:05:56

Roman
15.03.2017
07:07:28

Alex
15.03.2017
07:25:42

Roquie
15.03.2017
07:57:08
Всем привет!
Кто сталкивался со статикой для докера? Помогите с выбором решения.
Что имеем:
1. SPA-приложение, которое собирается npm и складывается в папку dist
2. API-приложение с php-fpm упакованное в контейнер
3. nginx который зависит от api-приложения
Проблема:
Статика, по сути, ничего не исполняет, оборачивать её в контейнер сомнительно. Но весьма удобно обернуть её в контейнер с nginx и выкачать с registry (билд выполняет CI), чтобы запустилось и работало без танцев с бубном. Имея один nginx со статикой, возникает вопрос о том, что делать со вторым nginx-ом, который настроен под API.
Решение:
1. Поставить rsync на CI-сервер, замаунтить папку с собранной статикой на прод. сервер где файлы уже подцепит основной nginx.
2. Проксировать с одного nginx на другой.
...может есть best practice какой?

Maxim
15.03.2017
08:01:18
а зачем второй nginx вообще? почему сразу не лезть в php-fpm с первого nginx?

Nikolay
15.03.2017
08:04:28
обычно применяют data-only контейнеры в таком случае, которые маунтятся куда нужно через —volumes-from


Roquie
15.03.2017
08:12:30
? В группе есть традиция - представляться при входе:
▫️Какой у вас проект или где работаете?
▫️В чём вы специалист?
▫️Чем можете быть интересны или полезны сообществу?
▫️Чем интересно сообщество вам?
▫️Откуда вы?
▫️Как узнали про группу?
В сообщении нужно указать тэг #whois
? Правила чата:
? Публикация вакансий запрещена
? Реклама запрещена
? Политика запрещена
? Флуд и непрофессиональное поведение запрещено
За несоблюдение правил - одно предупреждение, далее следует бан.
Вакансии и запросы на поиск работы публикуем в группе @devops_jobs. Формат любой: full-time, part-time, remote и разовые подработки. Также обмениваемся инсайдами и аналитикой по рынку труда.
Здесь общаемся на темы, посвященные Docker, Docker Swarm и всей экосистеме. Задаем вопросы, решаем проблемы и обмениваемся новостями.
Параллельно с этой группой развивается:
?@kubernetes_ru - посвященная Kubernetes (он же K8s), его конфигурации и обновлению. Задаём вопросы, обсуждаем идеи, решаем проблемы, делимся новостями и т.д.
?@devops_ru - активно общаемся на темы, посвященные DevOps, Docker, Mesos, DC/OS, CoreOS, Clouds и т.д.
? Возможно, вам также будут интересны группы: @nodejs_ru, @react_js, @angular_js, @javascript_jobs, @reactnative_ru, @ios_ru, @android_ru, @mobile_jobs. Приятного общения!
#whois #roquie
1. Туристические услуги, поиск, бронирование, выписка авиа/жд/отелей. Эквайринг. Работаю в Travel Management consulting.
2. Full stack разработчик web-приложений. PHP, Laravel, Postgres, Vuejs, Unix, CI/CD-integration.
3. Докер использую на продакшене и для dev-разработки, по многим обычным вопросам смогу ответить.
4. Узнать что-то новое, задавать вопросы где происходит тупняк или вдруг разыгралось чувство прекрасного :)
5. Москва.
6. Был тут месяца 3-4 назад. А до этого гуглил.


Petr
15.03.2017
08:32:12
а вообще для чего это?

Google

Petr
15.03.2017
08:32:34
я просто монтирую папку через -v

Nikolay
15.03.2017
08:34:23
не буду спрашивать, где вы видели такие рекомендации. Смысл мною сказанного в том, что если нужно использовать одну и ту же информацию в разных контейнерах хорошим решением является создать data-only контейнер, в нем сделать Volume и этот самый volume использовать в обоих контейнерах
мы так делаем для проброса сгенеренной статики из контейнера с фронтом в nginx
и это не противоречит вашей практике, а дополняет ее. Или нет.

Bogdan (SirEdvin)
15.03.2017
08:39:56
К тому же, хранить в контейнере данные - весьма и весьма опасно.

Nikolay
15.03.2017
08:41:15
речь не идет о хранении данных в контейнере.
и обычно data-only делают FROM tianon/true, который занимает несколько байт. И там нет вообще ничего. Только том, накотором хранятся данные, и его можно пробросить на хост, и/или в другие контейнеры

Artem
15.03.2017
08:43:01
а чем это лучше одной директории которая замонтирована на оба контейнера?

Nikolay
15.03.2017
08:43:23
это как?

Artem
15.03.2017
08:43:31
через -v
когда с хоста на оба контейнера монтируем одну и ту же директорию и данные никуда не пропадут и доступна с обоих контейнеров

Nikolay
15.03.2017
08:44:56
дело в том, что докер оперирует понятием volume для хранения данных
когда вы говорите "папка" и -v, вы имеете в виду то, что докер положит вольюм не к себе в /var/lib/docker, а в указанное место.
когда вы делаете -v той же папки в другой контейнер, вероятно, происходит то же что я говорю. Простоэто не очень хорошо с точки зрения архитектуры. Потому, что вы не можете наверняка сказать, к какому из двух контейнеров прикреплен этот вольюм, пока не посмотрите docker inspect
а основной плюс отдельного контейнера в том, что в соответствии с философией докера, вы можете без всяких заморочек полностью дропать любой из контейнеров без данных
то есть контейнер с nginx и npm гораздо удобнее обновлять, и вообще стартовать можно сразу с —rm

Artem
15.03.2017
08:48:14
так в случаем замонтированного volume с хоста, так же можно дропать любой контейнера и директория замаунченная никуда не денется
т.к. замонтированные волюмы не очищаются при удалении контейнера

Nikolay
15.03.2017
08:49:39
это верно. А рано или поздно наступает ситуация, когда на хосте заканчивается место, и мы начинаем его чистить с помощью всяких скриптов (говорят в 17.03 появилась чистилка внутри)

Google

Nikolay
15.03.2017
08:50:05
и тогда, когда мы запускаем очистку известными командами, удаляются и тома.
в общем, я говорю про архитектуру приложения. И считаю так делать удобнее.

Artem
15.03.2017
08:52:42
ну на продакшене возможно, у нас маунты с хоста только на тест окружении, на проде через все через persistent volume кубернетеса.
т.к. там диск хоста ноды как раз очищается при каждом обновлении
в gke

Nikolay
15.03.2017
08:55:11
в aws так же.
смысл же в том, что volume скалдываются на Presistent volume?
в общем, тут нет универсального рецепта. Каждый видит архитектуру по своему.

Artem
15.03.2017
08:56:29
ну у нас persistent volume это экспорты с nfs-сервера

Oleg ?
15.03.2017
09:08:27
Ребят привет
подскажите
собираю образ из убунты, ставлю пакет bash-completion
но tab не работает внутри контейнера
(
почему так7

Artem
15.03.2017
09:20:39
а в контейнер каким образом попадаешь?
по ssh или exec?

Dmitriy
15.03.2017
09:45:35
и в продолжение http://stackoverflow.com/questions/36011595/docker-named-volumes-vs-doc-data-only-containers

Andrey
15.03.2017
09:51:39
официальная документация докера до сих пор указывает на дата-онли контейнерс

Google

Dmitriy
15.03.2017
10:02:41
где?
Вот это? https://docs.docker.com/engine/tutorials/dockervolumes/#creating-and-mounting-a-data-volume-container

Ростислав
15.03.2017
10:06:13
подскажите пожалуйста, почему я устанавливаю докер у меня версия 17.03, смотрю какие-то доки там требуется 1.2,
что с версиями не так?) откуда такая пропасть между 1.2 и 17.03 ?)
а еще вроде 18 есть

Gleb
15.03.2017
10:06:45
Новая нумерация версий

Dmitriy
15.03.2017
10:06:52
Не успели доки обновить, они только неделю назад сменили версионирование 17 год 3 месяц

Ростислав
15.03.2017
10:14:06
спасибо)

Anton
15.03.2017
10:22:29

Oleg ?
15.03.2017
10:23:11
решил путем раскомментирования строк в bash.bashrc

Nikolay
15.03.2017
12:27:01

Alexander
15.03.2017
17:04:56
Парни, вангую что такое уже сто раз обсуждали, но все таки - скажите, как лучше всего прокинуть ssh ключ в контейнер, да еще если ключ с паролем
Заводить специальный ключ без пароля как то не очень нравится идея

Bogdan (SirEdvin)
15.03.2017
17:12:57
Есть Rocker
В котором есть mount
И можно при сборке интерактивы устраивать

Nikolay
15.03.2017
17:28:01
в докер ЕЕ вроде сделали какое-то решение для этого?

Alexander
15.03.2017
17:30:25
Подмонтировать ключ не проблема, а вот ssh-add неинтерактивно что-то не выходит

Roquie
15.03.2017
18:35:02
Черт побери! Телеграм глюкнул, не получал уведомлений! Пока из обсуждения, все сводится к варианту с data-only контейнерами, да и с ними проще осуществлять сборку и доставку на прод через registry…

Nikolay
15.03.2017
18:35:49
и описывать инфраструктуру будет проще

Google

Andrey
15.03.2017
18:38:35

Alexander
15.03.2017
18:51:42
Да, но как это поможет мне с ключами, у которых есть пароль?)
сам ключ прокинуть в принципы проблемы нет, проблема возникает, когда надо сделать bundle install (npm/go get и тд) из приватного репозитория
а у ключа пароль

Nikolay
15.03.2017
18:59:25
если нет возможности ввести этот пароль интерактивно, то есть ли в этом пароле вообще смысл?
его все-равно придется как-то или через что-то передавать.

Alexander
15.03.2017
19:00:57
тоже верно, просто тревожно на душе, что ключ с доступом на чтение ко внутренним проектам будет лежать без пароля
если например сделать просто отдельный ключ под контейнер

Nikolay
15.03.2017
19:02:03
а что мешает добавлять чувствительные данные в CI системе?

Alexander
15.03.2017
19:03:03
ну вообще сейчас цель была переехать с вагранта на докер в разработке, пока даже не ci

Nikolay
15.03.2017
19:03:08
любая CI умеет защищенно хранить креденшиалы. Взяли базовый образ, сделали сборку, выложили в приватный реп.

Alexander
15.03.2017
19:03:24
отсюда кейс, что у разных разработчиков разные ключи
но тк ssh форвардинг докер не умеет

Nikolay
15.03.2017
19:03:44
а как насчет использования deveploment_keys?