Содержание

Установка 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. Доступ


Полезные команды

Перезапуск

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

Чек-лист