Igor
на самом деле совладать с обезумевшим aws не так и легко
Igor
особенно если существующий проект перекатываешь на их облако
Andrey
а ты думал, пацаны не пальцем в носу ковыряют :)
Igor
diphost engineer associate
🏳️ Phil
ыыыы
Alf 🙀
Alf 🙀
Было недавно
Andrey
страсти какие
Roman
https://github.com/docker/docker/issues/13490
Johan
Можно ли как-то в docker-compose v 3.0 сделать именной volume, который будет привязывать папку? что-то типа
version: "3.0"
volumes:
# так ок
vendor:
# а так некорректный синтаксис
app:
type: bind
source: ./path/to/app
чтобы потом можно было в сервисах юзать так:
services:
foo:
volumes:
- vendor:/vendor
- app:/app
Johan
ну т.е. как-то исправить app:, чтобы работало как задумывается)
Aleksey
source: ./path/to/app
попробуй
source: $PWD/path/to/app
Johan
ошибка та же
volumes.app value Additional properties are not allowed ('source', 'type' were unexpected)
Andrey
а чего его таки научили волумы класть куда хочется а не куда ему надо?
Johan
мне тут надо прибиндить существующую папку просто, но чтобы volume был именной, чтобы не прописывать во всех сервисах путь
Andrey
ну можно юзать его волумы, только они лежат в строго определённом месте, ну и не то чтоб просто папка, обещали что решится всё с новым плагин апи, но я пока не смотрел, что там навертели
Igor
а вы переключились на докер композ версии 3?
Igor
я, правда, еще со вторым не до конца разобрался
Andrey
не, тоже пока не до того
A
Привет всем. Прочитал про volumes и data containers. На одном контейнере крутится хром. Пытаюсь отделить кеш хрома. Сделать что-то типа виртуального диска или каталога, куда хром будет обращатся за кешем (но не на хосте а в отдельном volume/data container). Но не знаю даже как приблизится к задаче. Может есть какие нибудь идеи?
A
В идеале в будущем хочу сделать так, чтобы несколько хромов обращались к единственному кешу, причем чтоб не было проблем с локами.
Danil
А можно тупые вопросы?)0
Danil
Вот у меня допустим есть приложение, которое я планирую обернуть в докер, оно за собой там тянет джаву, эластиксерч, супервизор, рэббитмк.
Danil
Вот я пушу его в свой репозиторий.
Danil
Подключается в кеомандру еще один разработчик
Danil
Он устанавливает себе докер и делает docker pull <image name>
Danil
Потом докер ран
Danil
И ему теперь, чтобы работать с проектом, нужно каждый раз так делать?
Danil
Докер run выполнять?
Danil
Докер запускает что то изолированное от системы?
Danil
Типа убунты в убунту?
Aion
докер запускает изолированный контейнер на основе имаджей
Aion
типо у вас есть ядро
Aion
например 3.16 для дебиана
Aion
оно будет использоваться в контейнере
Aion
так же он создаст копию каталогов ФС
Aion
и сделает change root в эту копию
Danil
А вот купили мы для прода сервер например, очень мощный и красивый, на нем дебиан стоит, все ок
Но мне просто стрем понимать, что от запроса пользователя все будет идти сначала на один порт нормального сервера дебиан и дальше пробрасываться на внутренний порт дебиана в дебине
Danil
Дебиан в дебиане - это как раз контейнер
Aion
эм... еще раз, проблемма в вашем снобизме?
Danil
Ну это так и работает?
Aion
а что вам мешает в таком случае выкинуть сеть с контейнерами на уровень локальной сети?
Aion
Aion
так то у вас запрос пользователя всеравно не сразу приходит на сервер, а проходит через цепочки ппосредников (маршрутизаторы и свитчи), не вижу пробллеммы увидеть в этой цепочке еще и докер
Danil
Хм, да тут дело скорее в том, что я не очень хорошо понимаю пока как оно работает, только начинаю разбираться
Danil
Просто одно дело, когда у тебя микросервисная архитектура, где у каждого сервиса свой стек или даже ось, все должно быть изолировано и, желательно, деплоиться в один клик
Danil
А у меня монолит и задача стоит, чтобы проект так же собирался в один клик
Danil
Я просто вижу, когда используют докер как очень быструю деплой-машинку
Danil
В монолитах
Aion
вы описали что у вас там куча сервисов
Aion
Aion
один контейнер = 1н сервис
Danil
Ну куча сервисов, но докер был бы крут (с моим текущим понимаем дел) для меня если только у меня:
1.один проект использует монго + nodejs
2.второй python django + uwsgi + nginx + elastic + postgres
3.третий php7-fpm, supervisor, rabbit, gearman
И ситуация такая, что все 3 надо запустить на одной машине
Вопрос тут в том, когда докер использовать НЕ нужно?
Вот если ситуация, что у меня только один из этих проектов работает на машине и ему не нужна изоляция лишняя, как и сопутствующим сервисам, потому что их 100% будет использовать только проект на PHP (ибо других проектов на машине никогда не будет). Тогда получается из плюсов докера остается лишь возможность в один миг собрать проект на машине нового разработчика или на любой потенциальной ноде + в случае краха быстро восстановить работоспособность? Просто если отпадает необходимость в контейнерах, тогда зачем мне лишний слой докерский чисто для деплоя,ведь по-любому же есть какие-то минусы в плане потребления ресурсов оперативной памяти и жесткого места на диске, которые без изолированности ничем не могут оправдываться?
Evgeny
Докер не нужен, когда ты не знаешь что с ним делать. В эмбедеде он вряд ли пригодится.
Evgeny
В десктопаппах
Sergey
Ну куча сервисов, но докер был бы крут (с моим текущим понимаем дел) для меня если только у меня:
1.один проект использует монго + nodejs
2.второй python django + uwsgi + nginx + elastic + postgres
3.третий php7-fpm, supervisor, rabbit, gearman
И ситуация такая, что все 3 надо запустить на одной машине
Вопрос тут в том, когда докер использовать НЕ нужно?
Вот если ситуация, что у меня только один из этих проектов работает на машине и ему не нужна изоляция лишняя, как и сопутствующим сервисам, потому что их 100% будет использовать только проект на PHP (ибо других проектов на машине никогда не будет). Тогда получается из плюсов докера остается лишь возможность в один миг собрать проект на машине нового разработчика или на любой потенциальной ноде + в случае краха быстро восстановить работоспособность? Просто если отпадает необходимость в контейнерах, тогда зачем мне лишний слой докерский чисто для деплоя,ведь по-любому же есть какие-то минусы в плане потребления ресурсов оперативной памяти и жесткого места на диске, которые без изолированности ничем не могут оправдываться?
плюс в том, что можно поднять рабочий контейнер на любой машине не ориентируясь на окружение (ну почти). Я вот докер юзаю когда гоняю тесты. На прод без докера и разрабатываю без докера. Но остальные ребята под докером сидят
Aleksey
Ну куча сервисов, но докер был бы крут (с моим текущим понимаем дел) для меня если только у меня:
1.один проект использует монго + nodejs
2.второй python django + uwsgi + nginx + elastic + postgres
3.третий php7-fpm, supervisor, rabbit, gearman
И ситуация такая, что все 3 надо запустить на одной машине
Вопрос тут в том, когда докер использовать НЕ нужно?
Вот если ситуация, что у меня только один из этих проектов работает на машине и ему не нужна изоляция лишняя, как и сопутствующим сервисам, потому что их 100% будет использовать только проект на PHP (ибо других проектов на машине никогда не будет). Тогда получается из плюсов докера остается лишь возможность в один миг собрать проект на машине нового разработчика или на любой потенциальной ноде + в случае краха быстро восстановить работоспособность? Просто если отпадает необходимость в контейнерах, тогда зачем мне лишний слой докерский чисто для деплоя,ведь по-любому же есть какие-то минусы в плане потребления ресурсов оперативной памяти и жесткого места на диске, которые без изолированности ничем не могут оправдываться?
Ну минусы преувеличены, а вообще направление мысли верное - деплои. Здесь уже у каждого своя схема. Но рано или поздно приходишь к ситуации, когда становится крититично откатится на предыдущую версию. Если у вас вариант blue-green деплоймента, то есть по очереди деплоите то в один локейшен, то в другой, проблемы отката на предыдущую версию нет и пожалуй докер будет оверхедом. Второй важный момент - правится ли в таком случае ручками что-либо на сервере - как минимум теже питоновские либы для джанго проект. Разумеется, есть виртуаенв, реквайраментс, но со времени на сервер ставится что-то кастомное и невозможно гарантировать, что дев окружение у вас совпадает с прод окружением ну и самый критичный вариант - умер физический сервер и надо в короткие сроки это все восстановить, доекр позволяет этим не заморачивает в докер имадж у вас необходимое и достаточное окружение
Alf 🙀
Alf 🙀
Denis
Denis
Alf 🙀
Эмуляторы не спасают
А я правильно понимаю что девелоперы запускают андроид аппы чтобы оттестить перед тем как кактить это в плэй? Правильно?
Alf 🙀
Если так то вам в сторону риал девайсов. У фб свой стэк собран например. Ну и куча контор даёт риал клауд для таких нужд.
Denis
Denis
Но бабла не напасешься )
Alf 🙀
Но ладно. Не о том речь
A
Dmitry
Всем привет! Возник вопрос по docker.
есть docker-stack конфиг, который раскидывает сервисы по хостам в swarm.
Есть несколько сервисов, которые expose один и тот же порт наружу, но я вручную раскидываю их на разные хосты
ports:
- "27017:27017"
deploy:
placement:
constraints: [node.role == machine1]
ports:
- "27017:27017"
deploy:
placement:
constraints: [node.role == machine2]
при попытке деплоя такой конфигурации получаю
docker@manager:~$ docker stack deploy --compose-file docker-stack.yml rating-service
Creating service rating-service_mongodb-arbiter
Error response from daemon: rpc error: code = 3 desc = port '27017' is already in use by service 'rating-serivce_mongodb-master' (emwd7zpyn1p8bex0ak2e2d7qi)
чяднт? почему так, если разные машинки?
Victor
какая-то из машин должна занять порт хостовой машины отличный от 27017
Victor
не понятно?
Askhat
Всем привет. Нужен совет. Есть приложение на Django, которое использует PostgreSQL как БД. Нужно ли ставить PostgreSQL в отдельный контейнер и приложение так же в отдельном контейнере. Либо ставить PostgreSQL на голом железе и делать проброс портов к контейнеру приложения. Спасибо заранее
Alf 🙀
Alf 🙀
Askhat
ты сам ответил на свой вопрос. выбирай что больше нравится
Я смотрел видео с конференции MoscowPython где Антон Егоров из компании Островок рассказывал про докеризацию приложений. Там он говорил о том, что БД докеризировать не рекомендуется, но подробно об этом не рассказал. Может быть есть варианты почему он так предложил?