Облачная IDE для Docker-проектов? - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу начать преобразовывать некоторые из моих существующих проектов в использование Docker - главным образом, чтобы упростить начало работы новых разработчиков и уменьшить количество ошибок, связанных со средой, при развертывании в производство (однажды у меня возникла проблема, связанная с работой кода). идеально в dev и только для того, чтобы узнать, что у производства была устаревшая версия MySQL)

Проблема в том, что мне нравится работать с облачными IDE. В настоящее время я использую Cloud9, хотя недавно я начал изучать CodeAnywhere и Codenvy, чтобы выяснить, соответствуют ли они моим потребностям (пока: неясно)

Проблема, с которой я сталкиваюсь, заключается в том, что Docker, похоже, не очень хорошо работает со многими облачными IDE.

  • В Cloud9 ваш проект (и связанный с ним репозиторий) находятся в «рабочем пространстве». Одно рабочее пространство - это контейнер Docker, работающий в непривилегированном режиме, поэтому вы не можете запустить Docker, находясь в рабочем пространстве. Это означает, что любые зависимости среды (Python, PHP, MySQL и т. Д.) Должны быть установлены непосредственно в рабочую область ОС
  • CodeAnywhere аналогичным образом создает «контейнер» - контейнер Docker, в котором выполняется ваш код и в котором вы не можете запустить Docker
  • Codenvy кажется немного ближе к тому, что я хочу, в том смысле, что "рабочее пространство" может состоять из нескольких "машин". Это очень напоминает мне файл docker-compose.yml. Ваше рабочее пространство может содержать компьютер базы данных, компьютер Redis Cache и компьютер PHP. Однако их иерархия помещает «проекты» (и связанные репозитории) как дочерние элементы «рабочих пространств», а не определение среды (и файл docker-compose.yml), являющийся дочерним элементом проекта

Первые два поддерживают некоторое понятие «рабочих пространств SSH» - вместо подключения к контейнеру, размещенному в них, вы можете раскрутить виртуальную машину и подключиться к ней напрямую. Хотя это позволило бы мне запускать Docker, на первый взгляд у него возникает одна из двух серьезных проблем:

  1. Каждый проект находится в одном «рабочем пространстве», что затрудняет разделение работы IDE.
  2. Каждый проект имеет свое собственное «рабочее пространство», то есть каждый проект имеет свою собственную виртуальную машину - что приводит к большим ежемесячным затратам

Существуют ли какие-либо другие облачные среды IDE, которые решат мои проблемы, или есть какой-то другой способ использования одной из этих трех облачных сред IDE, которая будет работать для меня?

1 Ответ

0 голосов
/ 28 ноября 2018

Я задавал этот вопрос в нескольких разных местах, а не только здесь. Через несколько месяцев не было никакого полного ответа, но я получил немного больше информации, которую я хотел бы передать любому, кто сталкивается с той же самой проблемой.

1. Относительно Cloud9 и CodeAnywhere

При раскрутке нового рабочего пространства SSH вы можете указать не только хост, но и корневую папку для рабочего пространства. Это означает, что вы можете создать несколько рабочих пространств на одной виртуальной машине и хранить все в порядке и отдельно

Есть несколько предостережений:

  • Чтобы по-настоящему отделить ваши рабочие пространства, вы должны создать нового пользователя для каждой рабочей области. В противном случае кто-то в workspaceA может редактировать ../workspaceB/file
  • Все рабочие пространства будут использовать одно и то же дисковое пространство, поэтому кто-то, работающий в одной рабочей области, может заполнить жесткий диск и вызвать проблемы для всех других рабочих областей
  • Нет простого способа раскрутить новые рабочие пространства. Вы должны войти в ВМ как пользователь с правами администратора, создать нового пользователя, создать каталог для рабочей области, назначить разрешения, а затем настроить новую рабочую область SSH. Может быть возможно автоматизировать большую часть этого, хотя

2. Относительно CodeAnywhere конкретно

CodeAnywhere обещал полную поддержку Docker в 4 квартале 2018 года. Я ждал и еще не видел его. Держите пальцы скрещенными.

3. Альтернативный сервис

В настоящее время в 2018 году существует свыше 50 облачных IDE. Все и их мать занимаются бизнесом "я тоже". Поэтому понятно, что хотя бы один из них будет работать. Хотя я не пробовал их всех, я слышал от кого-то, что OpenShift поддерживает Docker.

...