Deckhouse Code работает в одном контейнере с тем же omnibus-пакетом, что и при установке пакетом для ОС Linux. Хост предоставляет Docker Engine, ресурсы одного инстанса, каталоги под тома и сетевые порты.
Хост
Контейнер запускается на хосте с ОС Linux, архитектурой x86_64 и Docker Engine.
Требования к памяти и диску совпадают с установкой пакетом для ОС Linux и перечислены в разделе «Требования»: 8 ГБ RAM (минимум 6 ГБ и swap) и не менее 20 ГБ свободного места под данные инстанса. Образ занимает на хосте ещё 2,5–3 ГБ.
Тома
Образ объявляет тома для конфигурации, данных и логов. Подключите их все: в них хранится состояние, которое переживает контейнер, — при обновлении контейнер пересоздаётся, а тома остаются.
| Путь в контейнере | Содержимое |
|---|---|
/etc/gitlab | Файл конфигурации gitlab.rb, ключи шифрования gitlab-secrets.json, TLS-сертификаты, ключи хоста SSH, файл с первоначальным паролем root. |
/var/opt/gitlab | Репозитории, база данных, загруженные файлы, артефакты CI, реестр пакетов, архивы резервных копий в /var/opt/gitlab/backups. |
/var/log/gitlab | Логи всех сервисов и лог каждого запуска настройки в /var/log/gitlab/reconfigure. |
В примерах на этих страницах тома — это каталоги хоста: /srv/code/config, /srv/code/data и /srv/code/logs.
Сетевые порты
Опубликованные порты обслуживают трафик Git по SSH, HTTP и HTTPS.
| Порт | Назначение |
|---|---|
22 | Git по SSH. В контейнере работает собственный sshd, который принимает пользователя git и аутентификацию по открытому ключу. |
80 | Веб-интерфейс и Git по HTTP, после настройки TLS — перенаправление на HTTPS. |
443 | Веб-интерфейс и Git по HTTPS. |
Порты публикуются при создании контейнера. Порт хоста может отличаться от порта контейнера: тогда в адресе инстанса указывают порт хоста, который открывают пользователи, а порт SSH, отличный от 22, указывают в конфигурации, как описано на странице «Настройка после установки».
Разделяемая память
Создавайте контейнер с параметром --shm-size 256m. По умолчанию Docker выделяет под /dev/shm 64 МБ.