Voglio eseguire un'istanza Jenkins in un contenitore finestra mobile.Come montare il connettore docker come volume nel contenitore docker con il gruppo corretto
voglio Jenkins stesso di essere in grado di girare su contenitori docker come schiavi per eseguire i test in.
Sembra che il modo migliore per farlo è quello di utilizzare
docker run -v /var/run.docker.sock:/var/run/docker.sock -p 8080:8080 -ti my-jenkins-image
Il Dockerfile
che sto usando è
FROM jenkins
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
USER root
RUN apt-get update && apt-get install -y docker.io
RUN usermod -aG docker jenkins
USER jenkins
Se inizio una sessione di bash nel mio container esecuzione e correre docker info
sulla mia immagine ho
$ docker info
FATA[0000] Get http:///var/run/docker.sock/v1.18/info: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
E se corro la sessione bash come root
docker exec -u 0 -ti cocky_mccarthy bash
[email protected]:/# docker info
Containers: 42
Images: 50
...
Quindi credo che la docker
gruppo I' m aggiungendo l'utente jenkins è il gruppo per la finestra mobile interna, quindi il socket non è leggibile senza sudo. Questo è un tipo di problema in quanto il plugin docker di jenkins, ecc., Non è impostato per usare sudo.
Come posso montare il socket in modo che possa essere utilizzato dall'immagine senza sudo?
Hai trovato una soluzione per il tuo problema? Sto affrontando lo stesso problema adesso –