Muszę zdać --network
opcja polecenia uruchamiania dokera w jednym z moich kroków. Próbowałem skonfigurować gitlab-ci runner z network_mode
opcja, ale nie działała
Czy jest jakiś sposób na dodanie opcji do polecenia dokera w gitlab-ci?
Tutaj jest mój config.toml
:
[[runners]]
name = "Docker Runner"
url = "https://gitlab.company.com"
token = "9621bf2aba8b979b"
executor = "docker"
[runners.docker]
tls_verify = false
image = "alpine:latest"
privileged = false
disable_cache = false
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
network_mode = "dedicated"
shm_size = 0
Aktualizacja
dedykowany jest na mojej liście sieci, spróbuj z hostem, ten sam wynik
NETWORK ID NAME DRIVER SCOPE
0ec4c3c2d4be bridge bridge local
977b613d726e dedicated bridge local
45a0fadc2ce7 host host local
9f7251c769ca none null local
Moja usługa IT w firmie dodaje wtyczkę, aby sprawdzić argument przy starcie kontenera i mam AuthZPlugin.AuthZReq: Use of subnet "1.1.1.1/24" is forbidden
Dlatego muszę wyraźnie dodać --network dedicated
Odpowiedzi:
0 dla odpowiedzi № 1network_mode
działa dla wszystkich znanych sieci na hoście, możesz Wymień je z docker network ls
.
dedicated
musi znajdować się na tej liście, aby działało.
Udało mi się to zrobić dla host
sieć i może potwierdzić, że to działa.
0 dla odpowiedzi nr 2
W końcu znalazłem rozwiązanie dzięki ten link
Montuję gitlab-dind i używam go dla mojego biegacza, definiując zmienną env -e DOCKER_HOST=tcp://gitlab-dind:2375
a także używać network_mode = "host"
Mój config.toml
wygląda tak :
[[runners]]
name = "Runner"
url = "https://gitlab.company.com"
token = "ff10e2ae64be1a2f246f5f89e0bc63"
executor = "docker"
[runners.docker]
host = "tcp://gitlab-dind:2375"
tls_verify = false
image = "docker:latest"
privileged = true
disable_cache = false
volumes = ["/cache"]
network_mode = "host"
shm_size = 0
[runners.cache]