Это старая версия документа!


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 

(ВАЖНО: первый запуск 5–15 минут)

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

Открыть:

http://gitlab.domain.ru

Логин:

root

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

Перезапуск

 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