====== Gitlab ====== The current installation is under: http://gitlab.wialon-consulting.de:8080/ ===== Start ===== A wrong method to start the Gitlab container: ''sudo docker logs -f gitlab'' The container will start. After that press Ctrl+C to exit the log. At the moment I don't know a better method to start the container => search for it. Note (05.05.2023): ''sudo docker start gitlab'' worked too... I don't know why it was not possible previously. Maybe something goes wrong, but I didn't seen it? ===== Backup ===== I made backup with the help of this document: https://docs.gitlab.com/ee/raketasks/backup_restore.html The command was: ''sudo docker exec -t gitlab gitlab-rake gitlab:backup:create'' Also I've copied the ''/dockerdata/gitlab/config'' directory to ''~/gitlab.bak/config''. ===== Restore ===== I've used the following document: https://docs.gitlab.com/ee/raketasks/backup_restore.html#restore-gitlab So: # Stop the processes that are connected to the database sudo docker exec -it gitlab gitlab-ctl stop puma sudo docker exec -it gitlab gitlab-ctl stop sidekiq # Verify that the processes are all down before continuing sudo docker exec -it gitlab gitlab-ctl status # Run the restore. NOTE: "_gitlab_backup.tar" is omitted from the name sudo docker exec -it gitlab gitlab-backup restore BACKUP=1637386323_2021_11_20_14.4.2 # Restart the GitLab container sudo docker restart gitlab # Check GitLab sudo docker exec -it gitlab gitlab-rake gitlab:check SANITIZE=true ===== Upgrade ===== I made upgrade with the following document: https://docs.gitlab.com/ee/install/docker.html#update-gitlab-using-docker-engine 1. I made a backup (see above) 2. I stopped the running container: sudo docker stop gitlab 3. I removed the container: sudo docker rm gitlab 4. I pulled the new image: sudo docker pull gitlab/gitlab-ce:latest 5. Then I created the new container with the following command: sudo docker run --detach \ --hostname gitlab.wialon-consulting.de \ --publish 8443:443 --publish 8080:80 --publish 1022:22 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab \ --volume $GITLAB_HOME/logs:/var/log/gitlab \ --volume $GITLAB_HOME/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest Unfortunately I couldn't upgrade directly to the latest version, so it was necessary to upgrade major versions: sudo docker pull gitlab/gitlab-ce:12.0.0-ce.0 # then stop container, remove container, create new container, then pull new version ... sudo docker pull gitlab/gitlab-ce:13.0.0-ce.0 # ... then run it again ===== Installed versions ===== * Installed versions * **+** 11.11.3-ce.0 * **+** 12.0.0-ce.0 * **-** ... * **+** 14.0.0-ce.0 * **+** 14.0.5-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.0.5-ce.0'' * **Important for this version** (I had problems with this upgrade): * The batched background migrations should be completed before upgrade to the next version. See [[https://docs.gitlab.com/ee/update/#1400|Upgrade instructions for 14.0.0]] and [[https://docs.gitlab.com/ee/update/#check-the-status-of-batched-background-migrations|Check the status of batched background migrations]] * **+** 14.0.12-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.0.12-ce.0'' * **-** 14.1.0-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.1.0-ce.0'' * The upgrade from 14.0.12 to 14.1.0 did not worked! I rolled back, but it did not worked too. What worked after roll back is the upgrade to 14.1.1. See https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/6352#note_659967231 * **+** 14.1.1-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.1.1-ce.0'' * **+** 14.2.1-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.2.1-ce.0'' * **-** 14.3.0-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.3.0-ce.0'' * This upgrade (14.2.1 -> 14.3.0) did not work, so I had to take rollback and upgrade to 14.3.1 after that. So: 14.2.1 -> 14.3.0 -> 14.2.1 -> 14.3.1. * **+** 14.3.1-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.3.1-ce.0'' * **+** 14.4.1-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.4.1-ce.0'' * **+** 14.4.2-ce.0 * ''sudo docker pull gitlab/gitlab-ce:14.4.2-ce.0'' ===== Misc ===== ==== Big log file ==== Gitlab creates a big log file in the current container: * at the moment: * ''/var/lib/docker/containers/992bd1257242f4e8ac5288959bf5e0a822afd7813e470b4bc48f614e22b931b7/992bd1257242f4e8ac5288959bf5e0a822afd7813e470b4bc48f614e22b931b7-json.log'' So it is necessary to remove this file regularly (possible only as root): sudo -s cd /var/lib/docker/containers/992bd1257242f4e8ac5288959bf5e0a822afd7813e470b4bc48f614e22b931b7 rm 992bd1257242f4e8ac5288959bf5e0a822afd7813e470b4bc48f614e22b931b7-json.log Other command which can be useful is **du** (disk usage): # disk usage of all directories and files in current directory du -sh ./* # disk usage of a specific directory du -sh directory_name ==== Gitlab configuration ==== The gitlab configuration is in file: ''/dockerdata/gitlab/config/gitlab.rb'' At the moment I've changed only prometheus configuration: prometheus['enable'] = false Also interesting info about cleaning of prometheus data: https://forum.gitlab.com/t/clear-up-postges-prometheus-data/38216