Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| navody:server:gitlab_runner [2018/06/10 11:13] – Přidám deb balíček pro Ubuntu 18.04 parolek | navody:server:gitlab_runner [2018/09/30 15:22] (aktuální) – odstraněno Aither | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | ====== GitLab Runner ====== | ||
| - | Pokud chcete používat GitLab Runner s Docker executorem na vpsAdminOS, nejprve si nainstalujte [[navody: | ||
| - | [[https:// | ||
| - | Aby se Docker kontejnery připojily k internetu, je potřeba použít vlastní síť (viz // | ||
| - | v [[navody: | ||
| - | ''/ | ||
| - | |||
| - | < | ||
| - | [[runners]] | ||
| - | ... | ||
| - | [runners.docker] | ||
| - | ... | ||
| - | network_mode = " | ||
| - | </ | ||
| - | |||
| - | Ve vlastní síti ovšem správně nefunguje linkování služeb ke kontejneru s testy/ | ||
| - | Ověřeny byly dvě možné řešení: používat výchozí síť dockeru a upravit si ji, nebo | ||
| - | patchnout GitLab Runner, aby linkování správně nastavil. | ||
| - | |||
| - | |||
| - | ===== Úprava výchozí sítě ===== | ||
| - | Docker nad výchozím bridge nastavuje '' | ||
| - | o tom, že by to šlo v Dockeru přenastavit, | ||
| - | spuštění '' | ||
| - | a doplňte následující: | ||
| - | |||
| - | < | ||
| - | [Service] | ||
| - | ExecStartPost=/ | ||
| - | </ | ||
| - | |||
| - | Nyní vytvoříme ten skript: | ||
| - | |||
| - | < | ||
| - | cat <<EOF > / | ||
| - | #!/bin/sh | ||
| - | |||
| - | if [ $# != 1 ] ; then | ||
| - | echo " | ||
| - | exit 1 | ||
| - | fi | ||
| - | |||
| - | ip=$1 | ||
| - | |||
| - | ORIG_RULE=" | ||
| - | NEW_RULE=" | ||
| - | |||
| - | rule_exists() { | ||
| - | local rule=" | ||
| - | |||
| - | if $(iptables-save | grep -q " | ||
| - | echo y | ||
| - | else | ||
| - | echo n | ||
| - | fi | ||
| - | } | ||
| - | |||
| - | while true ; do | ||
| - | orig_exists=$(rule_exists " | ||
| - | new_exists=$(rule_exists " | ||
| - | |||
| - | if [ " | ||
| - | iptables -t nat -D $ORIG_RULE | ||
| - | [ " | ||
| - | exit 0 | ||
| - | |||
| - | elif [ " | ||
| - | exit 0 | ||
| - | |||
| - | else | ||
| - | sleep 1 | ||
| - | continue | ||
| - | fi | ||
| - | done | ||
| - | EOF | ||
| - | |||
| - | chmod +x / | ||
| - | </ | ||
| - | |||
| - | Zbývá už jen restartovat Docker: | ||
| - | |||
| - | < | ||
| - | systemctl daemon-reload | ||
| - | systemctl restart docker.service | ||
| - | </ | ||
| - | |||
| - | ===== Patch GitLab Runneru ===== | ||
| - | Pokud chcete používat vlastní docker network a mít v kontejneru dostupné služby, | ||
| - | nezbývá než opravit GitLab Runner. Tento [[https:// | ||
| - | aplikujte vůči https:// | ||
| - | zážitek, pro Fedoru 28 vypadá build takto: | ||
| - | |||
| - | < | ||
| - | make RPM_PLATFORMS=fedora/ | ||
| - | make package-rpm-fpm ARCH=amd64 PACKAGE_ARCH=amd64 | ||
| - | </ | ||
| - | |||
| - | Výsledný balíček pak stačí nainstalovat: | ||
| - | |||
| - | < | ||
| - | dnf install out/ | ||
| - | </ | ||
| - | |||
| - | Další možností instalace je stáhnout zkompilovaný balíček pro Fedoru 28, Ubuntu 18.04, který je již zkompilovaný s výše uvedeným patchem: | ||
| - | |||
| - | Fedora 28 | ||
| - | [[https:// | ||
| - | |||
| - | Ubuntu 18.04 | ||
| - | [[https:// | ||