Saltar al contenido

¿Cómo instalar pip en una imagen acoplable con un paso de pipline de jenkins?

Te damos la bienvenida a nuestro espacio, aquí vas a hallar la solucíon a lo que buscabas.

Solución:

Como mencioné en este comentario, la solución debería ser agregar un usuario adecuado dentro del contenedor. Usos de Jenkins 984:984 para uid/gid en mi máquina (pero puede ser diferente en la suya; inicie sesión en el host en el que se está ejecutando Jenkins y ejecute sudo -u jenkins id -a para detectarlos), por lo que debe replicarlo en el contenedor que debe ejecutar Jenkins:

FROM python:3.7

RUN mkdir /home/jenkins
RUN groupadd -g 984 jenkins
RUN useradd -r -u 984 -g jenkins -d /home/jenkins jenkins
RUN chown jenkins:jenkins /home/jenkins
USER jenkins
WORKDIR /home/jenkins

CMD ["/bin/bash"]

Por supuesto, ya que no eres el root usuario en el contenedor, cree un entorno virtual:

$ docker run --rm -it jenkins/python /bin/bash
[email protected]:~$ python -m venv myenv
[email protected]:~$ source myenv/bin/activate
[email protected]:~$ pip install numpy

o usar el --user argumento:

$ docker run --rm -it jenkins/python /bin/bash
[email protected]:~$ pip install --user --upgrade pip
[email protected]:~$ pip install --user numpy

etc


Alternativamente, usted poder (pero en la mayoría de los casos no debería) ingresar al contenedor como rootpero con jenkins grupo:

$ docker run --user 0:984 ...

De esta forma, aunque los archivos modificados seguirán cambiando de propietario, la propiedad de su grupo seguirá intacta, por lo que Jenkins podrá limpiar los archivos (o puede hacerlo usted mismo, a través de

sh 'rm -f modified_file'

en el Jenkinsfile.

Puntuaciones y reseñas

Tienes la posibilidad compartir esta noticia si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *