Виктор мой ответ вам чем-то не подходит? Напишите что вас смущает - возможно я поясню свою позицию, либо отредактирую ответ. Может быть у вас есть какие-то вопросы? А то я уже второй или третий раз натыкаюсь на этот вопрос (так как в нем не выбрано решение) и оказывается, что я на него уже ответил )
> Неправда. Задеплоил приложение - чтобы хоть какие-то изменения посмотреть - нужно потратить минут 10, чтобы во-первых удалить все контейнеры руками, потом удалить все образы руками, потом собрать заново.
Вы вот серьезно? То что вам нужно тратить десять минут на то, чтобы какие-то изменения увидеть не делает слова Владимира "неправдой". Вы с таким отношением отобьете у всех желание вам отвечать. Выглядит примерно так:
- О, этот молоток ужасно неудобная штука, я не могу им ничего забить. Как вы им пользуетесь?
- Берем его за рукоятку и бьем по шляпке гвоздя, который хотим забить - гвоздь замечательно вбивается.
- А вот неправда! Я 10 минут забивал гвоздь во что-то и он весь погнулся!
Ну как-бы да, если вы его забиваете в металл - это вполне ожидаемо, например. И это не значит, что молоток используемый по назначению "не работает". Пишите больше по делу. Чего вы пытаетесь добиться и что конкретно у вас не получается. Не нужно оценивать слова более опытных людей - вы пока не можете это адекватно сделать.
Я бы на вашем месте переформулировал вопрос в виде "Как мне сделать ...?". Потому что сейчас вы пишете примерно следующее: "Я не понимаю что я делаю и это нифига не удобно, как мне сделать удобно?". Но сложно ответить на вопрос как сделать удобно, если не известно что вы хотите сделать. Добавьте больше конкретики. Какие у вас проблемы возникают без использования докера? Возможно, они решаются и без него. Например, с помощью virtualenv или ansible.
Михаил Да, пользователь может быть любым, но если он будет отличаться от пользователя на клиенте - нужно будет его явно указывать. То есть при подключении по ssh писать не просто ssh myhost.ru, а ssh user@myhost.ru
Также можно параметры подключения по ssh настраивать для каждого хоста в ~/.ssh/config, а в случае ansible в его inventory файле. Как это делать смотрите документацию.
Я сам этот режим этого плагина не пробовал, так что не знал о таком его недостатке. В таком случае вы можете использовать rsync для синхронизации после переключения между ветками (вручную, либо как-то автоматизировать) и режим синхронизации при сохранения файла плагина liximomo.sftp. Единственное, для удаления файлов нужно будет тоже испльзовать rsync в таком случае.
Можно вместо этого плагина использовать lsyncd (правда, под виндой я не знаю насколько просто его запустить). С ним у меня проблем никаких не было.
Для меня ваш вопрос выглядит примерно так: "Как мне сделать то, что делать не стоит?". Естественно, в таком виде я на него ответить не могу.
В гите уместно хранить именно исходный код и в ветках по идее должны быть разные версии одного и того же, а не разные сущности. То есть вот этот кейс, который вы хотите, чтобы в мастере хранился не исходный код, а его производные - не надо так делать. Как вы будете синхронизировать изменения между ними? Если вы на проде сделаете изменение в минимизированной версии скрипта, например - как и в какой момент вы будете это синхрониизровать с нормальной версией?
Менять файлы на проде файлы напрямую тоже довольно опасная идея - в принципе, как временный вариант, когда к проду имеет доступ только один человек можно так делать.
Если вы сейчас понимаете, что делаете что-то не то - переформулируйте ваш вопрос так, чтобы он был о конечной цели.
Если вы считаете, что выпрали правильный путь решения своей задачи и хотите узнать именно то, что спрашиваете - я бы не очень рассчитывал на ответ, но может быть кто-нибудь вам и ответит =)
mi_ka, в принципе, я ответ дал - он вряд ли принципиально изменится. Код я, возможно, посмотрю, если будет время - если выясню что-то новое добавлю в свой ответ.
Под рантаймом я имею ввиду любые данные, которые создатся в процессе работы приложения (сайта). Например: различные логи, загруженные пользователеми файлы, файлы созданные сервером (допустим, какие-то отчеты, которые пользователь потом может скачать).
И вот веб-сервер должен иметь права на запись только к тем директориям, к которым необходимо. А к самому коду в идеале он не должен иметь прав на запись - только на чтение. Из соображений безопастности. Вообще, это очень упрощенно и не совсем верно, но это не тема твоего вопроса, так что углубляться не буду.
Под инстансом я понимаю экземпляр приложения. Они могут быть как на одном, так и на разных серверах. Даже в самом простом случае обычно есть боевой инстанс - основной, которым пользуются пользователи и девелоперский - в него разработчик вносит свои изменения и тут же их проверяет. часто он запущен локально на машине разработчика. А вообще их может быть много - боевой, копия боевого, тестовый, вплоть до того, что на каждую отдельную задачу отдельный инстанс. Зависит от конкретного workflow.
> Ну то есть сейчас мой сервер это и девелоп и прод, так как приложение больше делаю для себя
В таком случае, конечно, меньше смысла иметь несколько инстансов. Но он все равно есть. Хотя-бы в том, что ты можешь пользоваться приложением и спокойно модифицировать его параллельно, не ломая (изменяя) работающую версию.
> Работаю в windows, про winscp не знал, посмотрю поподробнее.
Я, возможно, не очень понятно изначально выразил свою мысль. Я хотел сказать, что если пользоваться функционалом синхронизации в phpStorm - тебе дополнительно нужен только rsync. winscp или lsyncd не нужны - они именно для live синхронизации, с чем вполне справится phpStorm. А rsync - для синхронизации изменений сделанных извне редактора. Например, при переключении между ветками.
Если же phpStorm чем-то не устраивает, тогда да - winscp. По удобству он проиграывает lsyncd, но с него проще начать. Запустить lsyncd на windows я пробовал b у меня были какие-то проблемы, но это было давно, время идет - может быть сейчас их уже не будет, учитывая что в Win10 завезли линуксовое ядро.
cehka, Ура! =) В связи с новой информацией у меня снова нет определенного варианта в чем может быть дело. Могу предложить попробовать в режиме реального времени разобраться через telegram и потом зафиксировать результат тут, если получится.
cehka, Обновите всё-таки, пожалуйста, вопрос. Свои предположения, в чем может быть дело я после этого дам в ответе. То что вы в последний раз написали - как раз то что надо (хотя я бы оформил команду/ответ как блок кода, но это уже не столь важно).
cehka, Повторюсь: отредактируйте (актуализируйте) ваш вопрос. Напишите там конкретную команду, которую вводите и ответ. Просто сделайте копи-паст из консоли и отформатируйте как код. Варианты могут быть разные и для начала хорошо бы знать адрес сервера.
> Уже понял что это от машины. Только вот всё равно не подключается))
Что к чему не подключается? Я так понимаю, пароль к ssh вы сменили и у вас что-то с гитом не получается? Или вы не можете подключиться к ssh чтобы сменить пароль? Откорректируйте вопрос так, чтобы он был актуальным. Что вы пытаетесь сделать, какие команды выполняете и какой вывод вы получаете.
К слову, для авторизации по ssh рекомендую настроить авторизацию по RSA ключу, вместо пароля, но это так, на будущее =)