Korzystam z polecenia dokowania skomponuj obraz Jenkinsa docker-compose up
moje pliki konfiguracyjne Plik Docker:
FROM java:openjdk-8-jre
EXPOSE 50000
docker-compose.yml
version: "3"
services:
jenkins:
image: jenkins:2.60.3-alpine
ports:
- 50000:50000
Mój kontener uruchamia wynik PS dokera:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7dbe18cdbb53 jenkins:2.60.3-alpine "/bin/tini -- /usr/l…" 22 minutes ago Up 22 minutes 8080/tcp, 0.0.0.0:50000->50000/tcp docker_jenkins_1
Sprawdziłem hosta dokera docker inspect 7dbe18cdbb53
Wynik:
],
"NetworkID": "e3a5461960939397615620f051696f8b78fde9352d0c8b42b4ed679a1e847b9b",
"EndpointID": "999b5d3525b2fe823c5ed0033bb27e85b3ca26356b4bd9f1525de005739fecde",
"Gateway": "172.18.0.1",
"IPAddress": "172.18.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:12:00:02",
"DriverOpts": null
`
Kiedy próbuję uzyskać dostęp z przeglądarki takiej jak 172.18.0.2:50000, to nie działa.
Odpowiedzi:
0 dla odpowiedzi № 1The jenkins
posiadany obraz jest skonfigurowany do nasłuchiwania ruchu HTTP na porcie 8080
. Zerknij na to: https://github.com/jenkinsci/docker/blob/c2d6f2122fa03c437e139a317b7fe5b9547fe49e/Dockerfile
Jest to część, w której zdefiniowana jest domyślna wartość portu HTTP
ARG http_port = 8080
i tutaj jest narażony
# dla głównego interfejsu internetowego:
EKSPOZYCJA $ {http_port}
Podobnie można stwierdzić, że port agenta (podrzędny) 50000
.
W Twoim docker ps
Wyjście widać, że kontener Jenkins nasłuchuje 8080
ale to nie jest publikowane na hoście. Zasadniczo próbujesz połączyć się przez port HTTP z portem agenta i nie działa on zgodnie z oczekiwaniami. Zmień plik komponowania dokera, aby również opublikować plik 8080
port i użyj tego.