Aleksey
docker exec vs nsenter как песчинка против кварка
Aleksey
Ниже nsenter вроде и нет ничо
🏳️ Phil
Посмотри обсуждения. Гдето прямо они обсуждают. Там есть чтото про "прекратил разработку"
🏳️ Phil
Может они используют клон или модификацию
🏳️ Phil
https://github.com/Yelp/dockersh - там короче они какую-то версию да используют
Ihor
интересно.. тут все маководы, линуксоиды?
Ihor
или виндусятники тоже есть? )
Aleksey
конечно есть. просто они молчаливы.
Evgeny
И грустны
Ihor
Я использую. Pycharm умеет в удаленный интерпретатор, автокомплитом мажусь по полной
Даа?? То есть я могу разрабатывать с автокомплитом прямо внутри дохер контейнера с винтового /макового пайчарм?
Ihor
Вот это поворот
Ihor
Дай хоть скрин )) Пойду сегодня серьезно гуглить ))
Ihor
выходит и вебшторм умеет в удаленный nodejs
Dmt
Дай хоть скрин )) Пойду сегодня серьезно гуглить ))
Сейчас не с чего дать скрин, но можешь либо погуглить, либо дёрнуть меня завтра в личку.
Ihor
вот это больше спасибо за наводку. Да уже, думаю, раскопаю сам. Потому что на винде не могу я разрабатывать.. только открываю виндовую консоль и плакать хочется после любимого Linux/Mac zsh
🏳️ Phil
Хочу странного. Хочу сделать окружение разработчиков докерами на удаленном сервере. Сужаю задачу - хочу чтобы при заходе по SSH запуск команды производился в определенном контейнере (который я выбрал по конфигу). Я уже накопал: https://github.com/Yelp/dockersh - прямо что надо. Полудохлое, на старых технологиях https://github.com/progrium/envy - полудохлое, док и кейсов нет https://github.com/flant/pam_docker - мысль интересная, но PAM. И полудохлое На чем остановился. ForceCommand в sshd на Match Group. И там враппер вокруг docker exec. 1. А надо ли, чтобы докер эмулировал терминал, когда его ssh эмулирует? Судя по всему надо, но не уверен 2. Собственно, что именно запускать в контейнере? su -l -c $SSH_ORIGINAL_COMMAND ? 3. Сделать обертку через /bin/sh или таки выдернуть код клиента docker и сделать на Go обвязку вокруг обработки exec? Что-то у меня впечатление, что на /bin/sh будет не сильно хуже, если там никто не балуется страшно загруженным Ansible 4. Что делать c SSH Agent socket?
Denis
Хочу странного. Хочу сделать окружение разработчиков докерами на удаленном сервере. Сужаю задачу - хочу чтобы при заходе по SSH запуск команды производился в определенном контейнере (который я выбрал по конфигу). Я уже накопал: https://github.com/Yelp/dockersh - прямо что надо. Полудохлое, на старых технологиях https://github.com/progrium/envy - полудохлое, док и кейсов нет https://github.com/flant/pam_docker - мысль интересная, но PAM. И полудохлое На чем остановился. ForceCommand в sshd на Match Group. И там враппер вокруг docker exec. 1. А надо ли, чтобы докер эмулировал терминал, когда его ssh эмулирует? Судя по всему надо, но не уверен 2. Собственно, что именно запускать в контейнере? su -l -c $SSH_ORIGINAL_COMMAND ? 3. Сделать обертку через /bin/sh или таки выдернуть код клиента docker и сделать на Go обвязку вокруг обработки exec? Что-то у меня впечатление, что на /bin/sh будет не сильно хуже, если там никто не балуется страшно загруженным Ansible 4. Что делать c SSH Agent socket?
не нужно так, это прям очень плохо.
Denis
ты стимулируешь неверный подход к использованию докера
Denis
ладно когда вы стараетесь правильно, и используете депркейтед \ нерекомендуемые варианты, но вариант твой это вобще ортогональный подход
🏳️ Phil
ты стимулируешь неверный подход к использованию докера
Где я неверный подход к докеру стимулирую? Ну-ка
Denis
потому что ты пытаешься докер в виртуозу превратить
Denis
или в lxc
🏳️ Phil
потому что ты пытаешься докер в виртуозу превратить
Эээ... дав разработчику shell в его окружение??
Vladimir
докером, ага)
🏳️ Phil
Нууу.. логично. Его разработческие сервисы тоже докерами висят. Я не очень понимаю, почему окружение разработчика тоде не может быть докером.
🏳️ Phil
Я оговорюсь - я не хочу давать в этом случае разработчику что-то ставить или чем-то рулить. Это исключительно debug shell
🏳️ Phil
Даже грубее - лично моя задача сводится к выдаче этого debug shell. Создание контейнера и его набивка - задача за пределами этой.
Denis
тебе нужно будет ему дать права для управления контейнерами всё равно
Denis
и что ты сделаешь ?
🏳️ Phil
Конечно нет, конечно я не дам права на управление контейнерами
Denis
если разработчи не может управлят ьконтейнерами своими зачем ему доступ до машины с возможностью логина в опредленный специфичный контейнер ?
🏳️ Phil
если разработчи не может управлят ьконтейнерами своими зачем ему доступ до машины с возможностью логина в опредленный специфичный контейнер ?
Почему "своими"? "нашими" c ним. Практически "моими". Как зачем? Ну как-то он должен там код проверять, тестировать, писать его где-то
Denis
"писать код" в конейтенер который по идее своей стейтлесс ?
Denis
который просто от того что ты напишешь неверную баш функцию с форкобомбой схлопнется и собой прихлопнет все изменения ?
Denis
ты действителььно этого хочешь ?
🏳️ Phil
"писать код" в конейтенер который по идее своей стейтлесс ?
Так я ему подмонтирую же. Как и в проде в принципе.
Denis
а в чм тогда глобальный смысл "контейнера" ?
Denis
зачруть ему баш с вимом.
Denis
имхо ты баранку на одно место пытаешься натянуть
🏳️ Phil
а в чм тогда глобальный смысл "контейнера" ?
Окружение. Баш с вимом это хорошо (могу и не чрутить), но он там хочет свой любимый php и python
Denis
ну пусть он это делает локально
Denis
ты же делаешь здоровенную петлю
Vladimir
вообще разрабы обычно локальные конт на своих тачках поднимают для разработки
Denis
получается если он мейнтейнит этот контейнер, чтобы поиметь его заново на удалённой машине ему нужно пройти весь цыкл CI и потом зайти туда чтобы продолжить код писать ?
Vladimir
и сами с ними "любятся" так как им нравится
Denis
*поиметь заново" - с новыми пакетами какими то
🏳️ Phil
ну пусть он это делает локально
Так я и есть для него локально
Denis
Окружение. Баш с вимом это хорошо (могу и не чрутить), но он там хочет свой любимый php и python
если баш с вимом можно не чрутить дай им возможность управлять только своими контейнерами, да не секурно, но это наиболее гибко и просто
🏳️ Phil
вообще разрабы обычно локальные конт на своих тачках поднимают для разработки
Да хер там. Разрабы по сей день на проде код правят. Вот это да. В общей массе нормальный CI делает полторы калеки. Или вон простые проекты (банально я вот сейчас разбор выгрузок из реестра ркн делаю) - сооружать CI flow там усраться можно. Хотя я и использую dev/prod, но примерно всё в одном месте. И отладку делаю на ходу иногда. Это некая неизбежность, которая есть
Denis
бред
Denis
ты можешь свой CI нарисовать в виде мейкфайла с 5 таргетами, и распростронять его
Denis
и сделать там таргеты "локальные" и "ремотные"
Denis
что отлаживать ? мейкфайл у тебя контейнеры крутить будет.
Denis
запускать как нужно, маунтить куда нужно, вызовы какие то делать внешние по подготовке энва
Denis
код локальн ов дире.
Denis
ты же сам сказал
🏳️ Phil
У меня нет ничего локально. Мой сервер это и есть для меня локально
Denis
если "сервер" это "локально" то у тебя есть 2 сервера, прод и не прод.
Denis
и там где не прод, твори что хочешь и не заморачивайся
🏳️ Phil
Да хер там. Разрабы по сей день на проде код правят. Вот это да. В общей массе нормальный CI делает полторы калеки. Или вон простые проекты (банально я вот сейчас разбор выгрузок из реестра ркн делаю) - сооружать CI flow там усраться можно. Хотя я и использую dev/prod, но примерно всё в одном месте. И отладку делаю на ходу иногда. Это некая неизбежность, которая есть
🏳️ Phil
Какой в жопу сервер под прод и не прод
🏳️ Phil
Более того, там я хочу чтобы ешё пара девелоперов была на том же сервере со своей кухне
Denis
ну тоесть ты хочешь дать возможность разрабу править код на бою, который примаунчен в контейнер. так ?
Denis
ну а нахер вся эта морока с контейнером ?
🏳️ Phil
Например если этот "бой" - это его тест, то в чем вопрос-то/
Denis
пусть заходит да хуярит в виме
🏳️ Phil
пусть заходит да хуярит в виме
Во. Куда он заходт-то?
Denis
на тачку локальную.
🏳️ Phil
на тачку локальную.
И как он получает свой php?
Denis
что значит "получает свой php" ?
🏳️ Phil
он хочет скриптом php обработать у себя что-то. странно, но такое желание возникает
🏳️ Phil
например тупо проверить его работу