Установка Gitlab on Windows

Как установить Gitlab в Windows? Первая же ссылка в поисковике дала ответ: Самый легкий способ установить Gitlab в Windows-е — это установить виртуальную машину Linux и уже там установить Gitlab. Пост был опубликован на официальном форуме Гитлаба. Автор кажется не шутить? Хм… А есть ли все таки способ?

Обратимся к официальной документации. Раздел требования https://docs.gitlab.com/ee/install/requirements.html , где есть список поддерживаемых ОС.

  • Ubuntu
  • Debian
  • CentOS
  • openSUSE
  • Red Hat Enterprise Linux (please use the CentOS packages and instructions)
  • Scientific Linux (please use the CentOS packages and instructions)
  • Oracle Linux (please use the CentOS packages and instructions)

Что там написано про Windows?

Microsoft Windows

GitLab is developed for Linux-based operating systems. It does not run on Microsoft Windows, and we have no plans to support it in the near future. For the latest development status view this issue. Please consider using a virtual machine to run GitLab.

То есть,

Gitlab разрабатывался для Linux-based ОС. Оно не запуститься на Windows и у нас нет планов на поддержку этой ОС в ближайшее время. Следить за ходом разработки можете по ссылке. Если хотите запустить на Windows используйте виртуальную машину.

Вот те на… Но постойте, есть же Докер, философия которой заключается как раз в кросс платформенной доставке продукта. Даже есть целый раздел посвязенной установке через Docker https://docs.gitlab.com/omnibus/docker/README.html

Вот только если попытаться запустить на Windows вот этот конфиг:

получите ошибку

Эта ошибка не нова, обсуждение ее началось два года назад, а может и более. Есть большая дискуссия на эту тему по этой ссылке

https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2280

Сотни людей столкнулись с одним и тем же.

В чем же проблема?

Суть проблемы в самом докере для Windows. Во время установки Gitlab-a Chef скрипт пытается удостовериться что каталог принадлежит пользователю git:git, вместо этого получает none. Потому что, после монтирования, каталогу присваивается UID 0 : GID 0 755 unix file permissions, который невозможно изменить внутри контейнера

Обсуждение данной проблемы можно прочитать по ссылке

https://github.com/docker/for-win/issues/2042

Корень проблемы заключается в архитектурных различиях ФС Windows и вряд ли решится в ближайшее время. Протокол SMB/CIFS не поддерживает расширенные права для файлов.

Значит пора ставить виртуальную машину?

Скорее всего, автор этого топика https://forum.gitlab.com/t/how-to-install-gitlab-on-windows/32 прав и самый легкий способ установки — это поставить виртуальную машину. Ведь недаром Windows официально даже не поддерживается.

Но! Если нужно, то можно взять вот такой конфиг и…

Предварительно создав volumes вручную, и …

И вуаля после всех операции видим приветственное сообщение от Gitlab

install Gitlab on windows
Gitlab запустился
ошибка letsencrypt_certificate[gitlab.example.com] (letsencrypt::http_authorization) had an error. что делать?

Нужно отключить Lets Encrypt. Финальный конфиг будет выглядит так

Найдите два отличия 😉 Естественно не забудьте добавить домен gitlab.example.com в etc/hosts

Заключения

Как мы поняли установка Gitlab on Windows подходит только для экспериментальных целей или для тестирования новых фичей. Сами основатели предупреждают об отсутствии поддержки на Windows, поэтому использование в боевых целях не рекомендуется. Намного проще и дешевле будет поднять машину на Линуксе, хоть локально, хоть в облаке.

Кстатит, все работы проводились на версии Docker for Windows 18.06.1