Технологии типа "Eclipse Che" - акселератор OpenSource

Аватар пользователя Orion76 Orion76 2 марта 2019 в 18:28
2

Всем доброго здравия, коллеги и сочувствующие.

Недавно набрел в интернетах на такую штуку - https://docs.gitpod.io/10_Getting_Started.html

И просто офигел от понимания ее перспектив.

Если в краце в общем, как это работает:

1. Допустим есть какой-то публичный git-репозиторий с каким-либо проектом.
В данном конретном случае (с .gitpod.io) это репозиторий на github/

2.Допустим есть некий сервер-сервис, подобный gitpod.io.
Которому достаточно в GET параметре передать адрес публичного репозитория (п.1)

3.При этом на сервисе запускается докер-контейнер с клоном данного проекта (из репозитория) с полным необходимым окружением (php, mysql, composer,drush, drupalconsole и т.п.)

4.Прямо в браузере открывается полнофункциональная IDE (Eclipse Che) с данным проектом и командной строкой docker-контейнера.

5. Прямо в IDE или в отдельном окне браузера "запускается" сам проект (сайт-проект) для тестирования-отладки и т.п.

Т.е. если еще короче,

просто передаем (в браузере) сервису адрес git-репозитория, над которым нам вдруг захотелось поработать (принять участие в opensourse-проекте или просто побыстрому пофиксить баг и отправить коммит)
И в браузере у нас полное необходимое рабочее окружение (клон репозитория, IDE и сервер с работающим проектом)

Сказка?
Не думаю..

Пацаны из gitpod.io показали что такое возможно..
В данном случае сервер с проектом у них разворачивается на гуглклауд..
И через 100 пробных часов они попросят или потребуют денег.

Но чую, такую же штуку можно собрать и на своем сервере:

1. IDE Eclipse Che - придумана чтобы запускаться в докере и работать в браузере.

2.Остается только какой нибудь вэб-интерфейс для запуска нужных докер-контейнеров (с IDE и с сервером проекта), с этим может справится какой-нибудь вэб-гуй для докера.

2.[UPD] Все намного проще, Eclipse Che (сервер) это и есть специализированный докер-контейнер c web GUI для сборки и управления workspace из докер-контейнеров окружения проекта,

загрузки проекта из любого доступного git-репозитория и т.д.

3.И собрать сам докер-контейнер для запуска проекта в нужном окружении.

4.Загрузить в него код проекта из репозитория.

5.Установить проект.

6.Запустить.

Подобная штука просто офигеть как упростила и ускорила бы вхождение в совместную разработку opensource проектов, например drupal.ru

Ну и просто поработать в команде или в одиночку иногда аффигеть как быстро и удобно..

Ну согласитесь, аффигенно же?-)

PS. Извиняюсь если боян, сам только позавчера увидел-попробовал.-)

Комментарии

Аватар пользователя ivnish ivnish 3 марта 2019 в 18:45

По поводу развёртывания друпал.ру

Я тут набросал небольшой скрипт, позволяющий развернуть в докере друпал.ру всего за минуту

Скачать можно тут https://drupal.ru/files/druru2local/install_drupalru.sh.txt

Зы. в скрипте кодировка utf-8. Это браузеры почему-то думают, что это win-1251

Аватар пользователя madt madt 4 марта 2019 в 0:39
1

Please use English for comments Smile

#!/bin/sh
 
# Dependencies:
# docker
# docker-compose
# wget
# tar
# gzip
# git
 
DRUSH='docker-compose exec -T php drush'
 
wget https://drupal.ru/files/druru2local/docker4drupal.tar.gz
 
tar -xf docker4drupal.tar.gz
 
rm docker4drupal.tar.gz
 
git clone https://github.com/DrupalRU/drupal.ru.git www
 
wget https://drupal.ru/files/druru2local/settings.php.txt
 
mv settings.php.txt www/sites/default/settings.php
 
wget https://drupal.ru/files/drupalru-dump.sql.gz
 
gzip -d drupalru-dump.sql.gz
 
docker-compose up -d
 
sleep 10
 
$DRUSH sqlc < drupalru-dump.sql
 
rm drupalru-dump.sql
 
echo "Local site URL: http://drupalru.localhost"

echo "If your browser cannot reach this URL add '127.0.0.1 drupalru.localhost' to your hosts file"

Аватар пользователя Orion76 Orion76 13 марта 2019 в 10:14

Кстати, на днях поглубже погрузился в докер..
Оказывается в mysql-контейнерах, собранных на базе "стандартного"
есть специальная "папочка": /docker-entrypoint-initdb.d
в которую можно кидать дампы, шелл-скрипты
дампы загрузятся в созданную БД, а шелл-скрипты чтони-будь проинициализируют

https://hub.docker.com/_/mysql/#initializing-a-fresh-instance

Аватар пользователя sas@drupal.org sas@drupal.org 13 марта 2019 в 10:44

По сути автоматизации соворкинга drupal.ru, ребята переходят на гитлаб с его системой CI https://about.gitlab.com/product/continuous-integration/ инструмент конечно не новый, но приятно. Статейка на русском https://habr.com/ru/company/softmart/blog/309380/

Аватар пользователя DennisFox DennisFox 4 марта 2019 в 11:27

@Orion76

После 100 часов никто у вас денег не попросит, тем более не потребует. Для OpenSource проектов 100 Часов в месяц бесплатные.

Также в gitpod не используется ничего от eclipse che. IDE которая заложена в основу gitpod.io это theia

Аватар пользователя Orion76 Orion76 7 марта 2019 в 7:00

Да.. про тариф я как-то сразу "упустил", а потом "наслово" поверил, а мне сказали что всего 100 часов бесплатно-)
Ну так это еще лучше, для периодической работы над каким-нибудь opensource-проектом 100 часов в месяц вполне достаточно.

DennisFox wrote:
Также в gitpod не используется ничего от eclipse che.

Да, напрямую от Eclipse Che не использует, а от Eclipse Theia немного использует: Eclipse Theia -))

Аватар пользователя gun_dose gun_dose 6 марта 2019 в 17:44

Вопрос по поводу Eclipse Che и Theia: как там обстоят дела с автокомплитом методов php? Речь идёт не о банальном дополнении имён стандартных функций, а именно о подгрузке классов, то есть, если известно, что переменная $node имеет тип EntityInterface, чтобы предлагались методы save(), label(), и т.д.

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

Аватар пользователя Orion76 Orion76 7 марта 2019 в 7:08

В сервисе gitpod.io PHP пока не использовал, надо еще разобраться как БД в workspace организовать.

А с typescript автокомплит отлично работает.
И по самодельным классам и по импортированным из библиотек и т.п.

Только справку по классам-методам в всплывающем попапе пришлось отключить..
Всплывает безспроса, раздражает-)

Аватар пользователя Orion76 Orion76 7 марта 2019 в 7:22

Да суть не в конкретной IDE, а в том что можно практически любой проект с гитхаба открыть в некоей рабочей области с IDE, готовым дев-сервером и т.п. буквально "одной кнопкой".
Надо только расширение в браузер установить, которое добавит в гитхаб эту кнопку ( Расширение "Gitpod Online IDE" )

Поработать над ним, отладить-протестировать на дев-сервере и запушить обратно.

Круто же?-)

Аватар пользователя sas@drupal.org sas@drupal.org 7 марта 2019 в 7:26

Главное чтобы при этом весь процесс работы после открывания не приводил к увеличению времени потраченному на конечный результат.