Я хочу начать преобразовывать некоторые из моих существующих проектов в использование 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, на первый взгляд у него возникает одна из двух серьезных проблем:
- Каждый проект находится в одном «рабочем пространстве», что затрудняет разделение работы IDE.
- Каждый проект имеет свое собственное «рабочее пространство», то есть каждый проект имеет свою собственную виртуальную машину - что приводит к большим ежемесячным затратам
Существуют ли какие-либо другие облачные среды IDE, которые решат мои проблемы, или есть какой-то другой способ использования одной из этих трех облачных сред IDE, которая будет работать для меня?