Linux - instalace Gitlab CE do Ubuntu a do Docker kontejneru
V tomto článku naleznete stručný návod jak nainstalovat Gitlab CE do Ubuntu přes apt a také do Docker kontejneru.
Instalace
Instalace Gitlab CE do Ubuntu
sudo apt install ca-certificates tzdata;sudo apt update;sudo apt install lsb-release debian-archive-keyring apt-transport-https software-properties-common;gpg_key_url="https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey";curl -fsSL $gpg_key_url| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/gitlab.gpg
sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ce.list<<EOF
deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ focal main
EOF
sudo apt update;sudo apt install gitlab-ce
Instalace Gitlab CE do Docker kontejneru
export GITLAB_HOME=/srv/gitlab;sudo docker run --detach --hostname gitlab.dnservis.cz --publish 444:443 --publish 8080:80 --publish 222: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 --shm-size 256m gitlab/gitlab-ce:latest
docker start gitlab
------------
Docker bude dostupný na adrese http://localhost:8080
Vygenerujeme heslo pro root
------------
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Dodatek
Stav Gitlab služby
------------
gitlab-ctl status
Git - jak push na server přes ssh a ne přes https
------------
Do svých user prefs nahrát SSH key
Upravit v lokálním projektu git/config
z url = http://192.168.74.221/hanz/repo.git
na git@192.168.74.221:hanz/repo.git
pak už jen dát push git push origin main
Možné problémy
Web rozhraní Gitlab se nezobrazí
------------
Podíváme se do logů:
tail /var/log/gitlab/nginx/current
2023-02-27_19:38:46.65708 2023/02/27 20:38:45 [emerg] 4312#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2023-02-27_19:38:47.15728 2023/02/27 20:38:45 [emerg] 4312#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
2023-02-27_19:38:47.65791 2023/02/27 20:38:45 [emerg] 4312#0: still could not bind()
Dle logu je zde problém s bindem na port 80 - konflikt s běžícím webserverem.
Upravíme tedy aby Gitlab používal jiný port např. 8050.
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.74.112:8050'
gitlab-ctl reconfigure
A problém je vyřešen
Heslo pro uživatele root nefunguje
------------
Vygenerujeme nové heslo
gitlab-rake "gitlab:password:reset[root]"
Přihlášení na ssh u docker kontejneru nejde
------------
ssh git@localhost -p 222
git@localhost: Permission denied (publickey).
Ve web rozhraní je třeba přidat uživateli root veřejný klíč.
Pak se přihlášení povede:
ssh git@localhost -p 222
PTY allocation request failed on channel 0
Welcome to GitLab, @root!
Connection to localhost closed.