GitLab
Contents[+]
https://docs.gitlab.com/ee/install/docker.html
https://hub.docker.com/r/gitlab/gitlab-ce
Поднимаем Gitlab в docker-контейнерах за Nginx
Вложенные материалы
Запуск Gitlab
Без прокси-сервера
Проще всего запустить Gitlab на отдельном сервере без фронтального прокси. Предварительно необходимо изменить ssh порт (22) на другой, т.к. этот порт будет прокидываться в контейнер гитлаба Типовая команда запуска.
docker run -d \ --hostname gitlab.example.com \ --publish 22:22 \ --publish 80:80 \ --publish 443:443 \ --publish 5050:5050 \ --name gitlab \ --restart always \ --volume /srv/config:/etc/gitlab \ --volume /srv/logs:/var/log/gitlab \ --volume /srv/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
Получаем пароль пользователя *root*.
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
С прокси-сервером
Порядок действий:
- получаем TLS сертификаты через certbot
- запускаем gitlab без https, порты наружу не выводим (кроме 22)
- запускаем nginx с TLS-сертификатами и upstream-им в гитлаб.
Мажорное обновление Gitlab
# --- цикл обновления # Необходимо повторить для каждой мажорной версии docker-compose run --rm gitlab bash # --- for localhost # chmod 2770 /var/opt/gitlab/git-data/repositories # docker exec -it iaac_gitlab_run /opt/gitlab/embedded/bin/runsvdir-start & gitlab-ctl reconfigure # --- команда может ругнуться, но данные будут обновлены gitlab-ctl pg-upgrade # --- будет создана директория srv/gitlab/data/postgresql/data.XX # еще надо будет перименовать в data exit cd /path/to/srv/gitlab/data/postgresql sudo mv data data.YY sudo mv data.XX data # --- проверяем, что всё прошло хорошо docker-compose up
Резервирование и восстановление
https://docs.gitlab.com/ee/administration/backup_restore/index.html#migrate-to-a-new-server
Создание резервной копии
docker exec -it gitlab gitlab-ctl stop puma docker exec -it gitlab gitlab-ctl stop sidekiq docker exec gitlab gitlab-backup create
В директории */srv/data/backups* будет создан файл *xxx_gitlab_backup.tar*
Восстановление из резервной копии
Версия резервной копии должна соответствовать версии запущенного gitlab.
# Stop the processes that are connected to the database docker exec -it gitlab gitlab-ctl stop puma docker exec -it gitlab gitlab-ctl stop sidekiq # Verify that the processes are all down before continuing docker exec -it gitlab gitlab-ctl status # Run the restore. NOTE: "_gitlab_backup.tar" is omitted from the name docker exec -it gitlab gitlab-backup restore BACKUP=1691276448_2023_08_06_15.11.2 # Restart the GitLab container docker restart gitlab # Check GitLab docker exec -it gitlab gitlab-rake gitlab:check SANITIZE=true
Команды в комметариях
https://docs.gitlab.com/ee/user/project/time_tracking.html
# The following time units are available: # - Months (mo) # - Weeks (w) # - Days (d) # - Hours (h) # - Minutes (m) # Default conversion rates are 1mo = 4w, 1w = 5d and 1d = 8h. /estimate 3d 5h 10m
Полезные команды
# --- чистим реестр образов gitlab-ctl registry-garbage-collect