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. Логи установки
(ВАЖНО: первый запуск 5–15 минут)
docker logs -f gitlab
8. Получение root пароля
docker exec -it gitlab cat /etc/gitlab/initial_root_password
9. Доступ
Полезные команды
Перезапуск
docker restart gitlab
Остановка
docker stop gitlab
Запуск
docker start gitlab
Обновление GitLab
cd /opt/gitlab docker compose pull docker compose up -d
Важно (реально критично)
1. RAM
Минимум:
4 GB (лучше 8 GB) 2. Swap (если мало RAM)
fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile
3. Если не открывается
ss -tulpen | grep -E '80|443' docker logs gitlab
4. Изменение домена
nano /opt/gitlab/config/gitlab.rb
или через compose:
external_url 'http://NEW_DOMAIN'
применить:
docker exec -it gitlab gitlab-ctl reconfigure
5. SSH нюанс (очень важно)
Если у тебя уже используется 22 порт на хосте:
замени:
- '22:22'
на:
- '2222:22'
и подключение:
ssh -p 2222 git@gitlab.domain.ru