Установка GitLab CE в Docker (Debian)

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

docker --version
docker compose version

mkdir -p /opt/gitlab/{config,logs,data}

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'

cd /opt/gitlab
docker compose up -d

docker ps

docker logs -f gitlab

<note> Первый запуск может занимать 5–15 минут </note>


docker exec -it gitlab cat /etc/gitlab/initial_root_password


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

docker restart gitlab
docker stop gitlab
docker start gitlab
cd /opt/gitlab
docker compose pull
docker compose up -d

Важно

Минимум: 4 GB (рекомендуется 8 GB)


fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

ss -tulpen | grep -E '80|443'

nano /opt/gitlab/config/gitlab.rb

Найти:

external_url "http://gitlab.domain.ru"

Применить:

docker exec -it gitlab gitlab-ctl reconfigure

В docker-compose.yml:

- '2222:22'

Подключение:

ssh -p 2222 git@gitlab.domain.ru

Чек-лист

  • [ ] DNS указывает на сервер
  • [ ] Порты 80/443 открыты
  • [ ] RAM ≥ 4GB
  • [ ] Есть swap