Установка GitLab CE в Docker (Debian)
1. Установка Docker
apt update apt install -y ca-certificates curl gnupg install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | \ gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" \ > /etc/apt/sources.list.d/docker.list apt update apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2. Проверка Docker
docker --version
docker compose version
3. Подготовка каталогов
mkdir -p /opt/gitlab/{config,logs,data}
4. Создание docker-compose.yml
nano /opt/gitlab/docker-compose.yml
version: '3.8' services: gitlab: image: gitlab/gitlab-ce:latest container_name: gitlab restart: always hostname: gitlab.domain.ru environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.domain.ru' ports: - '80:80' - '443:443' - '22:22' volumes: - '/opt/gitlab/config:/etc/gitlab' - '/opt/gitlab/logs:/var/log/gitlab' - '/opt/gitlab/data:/var/opt/gitlab' shm_size: '256m'
5. Запуск
cd /opt/gitlab docker compose up -d
6. Проверка
docker ps
7. Логи установки
docker logs -f gitlab
<note> Первый запуск может занимать 5–15 минут </note>
8. Получение root пароля
docker exec -it gitlab cat /etc/gitlab/initial_root_password
9. Доступ
- Логин: root
- Пароль: из файла выше
Полезные команды
Перезапуск
docker restart gitlab
Остановка
docker stop gitlab
Запуск
docker start gitlab
Обновление
cd /opt/gitlab docker compose pull docker compose up -d
Важно
RAM
Минимум: 4 GB (рекомендуется 8 GB)
Swap (если мало RAM)
fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile
Проверка портов
ss -tulpen | grep -E '80|443'
Изменение URL
nano /opt/gitlab/config/gitlab.rb
Найти:
external_url "http://gitlab.domain.ru"
Применить:
docker exec -it gitlab gitlab-ctl reconfigure
SSH (если занят 22 порт)
В docker-compose.yml:
- '2222:22'
Подключение:
ssh -p 2222 git@gitlab.domain.ru
Чек-лист
- [ ] DNS указывает на сервер
- [ ] Порты 80/443 открыты
- [ ] RAM ≥ 4GB
- [ ] Есть swap