Aleksey
docker exec vs nsenter как песчинка против кварка
Aleksey
Ниже nsenter вроде и нет ничо
🏳️ Phil
Посмотри обсуждения. Гдето прямо они обсуждают. Там есть чтото про "прекратил разработку"
🏳️ Phil
Может они используют клон или модификацию
🏳️ Phil
https://github.com/Yelp/dockersh - там короче они какую-то версию да используют
Ihor
интересно.. тут все маководы, линуксоиды?
Ihor
или виндусятники тоже есть? )
Aleksey
конечно есть. просто они молчаливы.
Evgeny
И грустны
Dmt
Dmt
Ihor
Вот это поворот
Ihor
Дай хоть скрин ))
Пойду сегодня серьезно гуглить ))
Ihor
выходит и вебшторм умеет в удаленный nodejs
Ihor
вот это больше спасибо за наводку. Да уже, думаю, раскопаю сам.
Потому что на винде не могу я разрабатывать.. только открываю виндовую консоль и плакать хочется после любимого Linux/Mac zsh
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
Vladimir
🏳️ Phil
Vladimir
докером, ага)
🏳️ Phil
Нууу.. логично. Его разработческие сервисы тоже докерами висят. Я не очень понимаю, почему окружение разработчика тоде не может быть докером.
🏳️ Phil
Я оговорюсь - я не хочу давать в этом случае разработчику что-то ставить или чем-то рулить. Это исключительно debug shell
🏳️ Phil
Даже грубее - лично моя задача сводится к выдаче этого debug shell. Создание контейнера и его набивка - задача за пределами этой.
Denis
Denis
тебе нужно будет ему дать права для управления контейнерами всё равно
Denis
и что ты сделаешь ?
🏳️ Phil
Конечно нет, конечно я не дам права на управление контейнерами
Denis
если разработчи не может управлят ьконтейнерами своими зачем ему доступ до машины с возможностью логина в опредленный специфичный контейнер ?
Denis
"писать код" в конейтенер который по идее своей стейтлесс ?
Denis
который просто от того что ты напишешь неверную баш функцию с форкобомбой схлопнется и собой прихлопнет все изменения ?
Denis
ты действителььно этого хочешь ?
🏳️ Phil
Denis
а в чм тогда глобальный смысл "контейнера" ?
Denis
зачруть ему баш с вимом.
Denis
имхо ты баранку на одно место пытаешься натянуть
Denis
ну пусть он это делает локально
Denis
ты же делаешь здоровенную петлю
Vladimir
вообще разрабы обычно локальные конт на своих тачках поднимают для разработки
Denis
получается если он мейнтейнит этот контейнер, чтобы поиметь его заново на удалённой машине ему нужно пройти весь цыкл CI и потом зайти туда чтобы продолжить код писать ?
Vladimir
и сами с ними "любятся" так как им нравится
Denis
*поиметь заново" - с новыми пакетами какими то
🏳️ Phil
вообще разрабы обычно локальные конт на своих тачках поднимают для разработки
Да хер там. Разрабы по сей день на проде код правят. Вот это да. В общей массе нормальный CI делает полторы калеки. Или вон простые проекты (банально я вот сейчас разбор выгрузок из реестра ркн делаю) - сооружать CI flow там усраться можно. Хотя я и использую dev/prod, но примерно всё в одном месте. И отладку делаю на ходу иногда. Это некая неизбежность, которая есть
Denis
бред
🏳️ Phil
Denis
ты можешь свой CI нарисовать в виде мейкфайла с 5 таргетами, и распростронять его
Denis
и сделать там таргеты "локальные" и "ремотные"
🏳️ Phil
Denis
что отлаживать ? мейкфайл у тебя контейнеры крутить будет.
Denis
запускать как нужно, маунтить куда нужно, вызовы какие то делать внешние по подготовке энва
🏳️ Phil
Denis
код локальн ов дире.
Denis
ты же сам сказал
🏳️ Phil
У меня нет ничего локально. Мой сервер это и есть для меня локально
Denis
если "сервер" это "локально" то у тебя есть 2 сервера, прод и не прод.
Denis
и там где не прод, твори что хочешь и не заморачивайся
🏳️ Phil
Да хер там. Разрабы по сей день на проде код правят. Вот это да. В общей массе нормальный CI делает полторы калеки. Или вон простые проекты (банально я вот сейчас разбор выгрузок из реестра ркн делаю) - сооружать CI flow там усраться можно. Хотя я и использую dev/prod, но примерно всё в одном месте. И отладку делаю на ходу иногда. Это некая неизбежность, которая есть
🏳️ Phil
Какой в жопу сервер под прод и не прод
🏳️ Phil
Более того, там я хочу чтобы ешё пара девелоперов была на том же сервере со своей кухне
Denis
ну тоесть ты хочешь дать возможность разрабу править код на бою, который примаунчен в контейнер. так ?
🏳️ Phil
Denis
ну а нахер вся эта морока с контейнером ?
🏳️ Phil
Например если этот "бой" - это его тест, то в чем вопрос-то/
Denis
пусть заходит да хуярит в виме
🏳️ Phil
Denis
на тачку локальную.
Denis
что значит "получает свой php" ?
🏳️ Phil
он хочет скриптом php обработать у себя что-то. странно, но такое желание возникает
🏳️ Phil
например тупо проверить его работу